001 002package com.commercetools.history.models.change; 003 004import java.util.*; 005import java.util.function.Function; 006 007import io.vrap.rmf.base.client.Builder; 008import io.vrap.rmf.base.client.utils.Generated; 009 010/** 011 * SetParcelItemsChangeBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * SetParcelItemsChange setParcelItemsChange = SetParcelItemsChange.builder() 017 * .change("{change}") 018 * .plusPreviousValue(previousValueBuilder -> previousValueBuilder) 019 * .plusNextValue(nextValueBuilder -> nextValueBuilder) 020 * .parcel(parcelBuilder -> parcelBuilder) 021 * .build() 022 * </code></pre> 023 * </div> 024 */ 025@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 026public class SetParcelItemsChangeBuilder implements Builder<SetParcelItemsChange> { 027 028 private String change; 029 030 private java.util.List<com.commercetools.history.models.common.DeliveryItem> previousValue; 031 032 private java.util.List<com.commercetools.history.models.common.DeliveryItem> nextValue; 033 034 private com.commercetools.history.models.change_value.ParcelChangeValue parcel; 035 036 /** 037 * set the value to the change 038 * @param change value to be set 039 * @return Builder 040 */ 041 042 public SetParcelItemsChangeBuilder change(final String change) { 043 this.change = change; 044 return this; 045 } 046 047 /** 048 * <p>Value before the change.</p> 049 * @param previousValue value to be set 050 * @return Builder 051 */ 052 053 public SetParcelItemsChangeBuilder previousValue( 054 final com.commercetools.history.models.common.DeliveryItem... previousValue) { 055 this.previousValue = new ArrayList<>(Arrays.asList(previousValue)); 056 return this; 057 } 058 059 /** 060 * <p>Value before the change.</p> 061 * @param previousValue value to be set 062 * @return Builder 063 */ 064 065 public SetParcelItemsChangeBuilder previousValue( 066 final java.util.List<com.commercetools.history.models.common.DeliveryItem> previousValue) { 067 this.previousValue = previousValue; 068 return this; 069 } 070 071 /** 072 * <p>Value before the change.</p> 073 * @param previousValue value to be set 074 * @return Builder 075 */ 076 077 public SetParcelItemsChangeBuilder plusPreviousValue( 078 final com.commercetools.history.models.common.DeliveryItem... previousValue) { 079 if (this.previousValue == null) { 080 this.previousValue = new ArrayList<>(); 081 } 082 this.previousValue.addAll(Arrays.asList(previousValue)); 083 return this; 084 } 085 086 /** 087 * <p>Value before the change.</p> 088 * @param builder function to build the previousValue value 089 * @return Builder 090 */ 091 092 public SetParcelItemsChangeBuilder plusPreviousValue( 093 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 094 if (this.previousValue == null) { 095 this.previousValue = new ArrayList<>(); 096 } 097 this.previousValue.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 098 return this; 099 } 100 101 /** 102 * <p>Value before the change.</p> 103 * @param builder function to build the previousValue value 104 * @return Builder 105 */ 106 107 public SetParcelItemsChangeBuilder withPreviousValue( 108 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 109 this.previousValue = new ArrayList<>(); 110 this.previousValue.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 111 return this; 112 } 113 114 /** 115 * <p>Value before the change.</p> 116 * @param builder function to build the previousValue value 117 * @return Builder 118 */ 119 120 public SetParcelItemsChangeBuilder addPreviousValue( 121 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 122 return plusPreviousValue(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 123 } 124 125 /** 126 * <p>Value before the change.</p> 127 * @param builder function to build the previousValue value 128 * @return Builder 129 */ 130 131 public SetParcelItemsChangeBuilder setPreviousValue( 132 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 133 return previousValue(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 134 } 135 136 /** 137 * <p>Value after the change.</p> 138 * @param nextValue value to be set 139 * @return Builder 140 */ 141 142 public SetParcelItemsChangeBuilder nextValue( 143 final com.commercetools.history.models.common.DeliveryItem... nextValue) { 144 this.nextValue = new ArrayList<>(Arrays.asList(nextValue)); 145 return this; 146 } 147 148 /** 149 * <p>Value after the change.</p> 150 * @param nextValue value to be set 151 * @return Builder 152 */ 153 154 public SetParcelItemsChangeBuilder nextValue( 155 final java.util.List<com.commercetools.history.models.common.DeliveryItem> nextValue) { 156 this.nextValue = nextValue; 157 return this; 158 } 159 160 /** 161 * <p>Value after the change.</p> 162 * @param nextValue value to be set 163 * @return Builder 164 */ 165 166 public SetParcelItemsChangeBuilder plusNextValue( 167 final com.commercetools.history.models.common.DeliveryItem... nextValue) { 168 if (this.nextValue == null) { 169 this.nextValue = new ArrayList<>(); 170 } 171 this.nextValue.addAll(Arrays.asList(nextValue)); 172 return this; 173 } 174 175 /** 176 * <p>Value after the change.</p> 177 * @param builder function to build the nextValue value 178 * @return Builder 179 */ 180 181 public SetParcelItemsChangeBuilder plusNextValue( 182 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 183 if (this.nextValue == null) { 184 this.nextValue = new ArrayList<>(); 185 } 186 this.nextValue.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 187 return this; 188 } 189 190 /** 191 * <p>Value after the change.</p> 192 * @param builder function to build the nextValue value 193 * @return Builder 194 */ 195 196 public SetParcelItemsChangeBuilder withNextValue( 197 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 198 this.nextValue = new ArrayList<>(); 199 this.nextValue.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 200 return this; 201 } 202 203 /** 204 * <p>Value after the change.</p> 205 * @param builder function to build the nextValue value 206 * @return Builder 207 */ 208 209 public SetParcelItemsChangeBuilder addNextValue( 210 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 211 return plusNextValue(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 212 } 213 214 /** 215 * <p>Value after the change.</p> 216 * @param builder function to build the nextValue value 217 * @return Builder 218 */ 219 220 public SetParcelItemsChangeBuilder setNextValue( 221 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 222 return nextValue(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 223 } 224 225 /** 226 * <p>Information about the updated Parcel.</p> 227 * @param builder function to build the parcel value 228 * @return Builder 229 */ 230 231 public SetParcelItemsChangeBuilder parcel( 232 Function<com.commercetools.history.models.change_value.ParcelChangeValueBuilder, com.commercetools.history.models.change_value.ParcelChangeValueBuilder> builder) { 233 this.parcel = builder.apply(com.commercetools.history.models.change_value.ParcelChangeValueBuilder.of()) 234 .build(); 235 return this; 236 } 237 238 /** 239 * <p>Information about the updated Parcel.</p> 240 * @param builder function to build the parcel value 241 * @return Builder 242 */ 243 244 public SetParcelItemsChangeBuilder withParcel( 245 Function<com.commercetools.history.models.change_value.ParcelChangeValueBuilder, com.commercetools.history.models.change_value.ParcelChangeValue> builder) { 246 this.parcel = builder.apply(com.commercetools.history.models.change_value.ParcelChangeValueBuilder.of()); 247 return this; 248 } 249 250 /** 251 * <p>Information about the updated Parcel.</p> 252 * @param parcel value to be set 253 * @return Builder 254 */ 255 256 public SetParcelItemsChangeBuilder parcel( 257 final com.commercetools.history.models.change_value.ParcelChangeValue parcel) { 258 this.parcel = parcel; 259 return this; 260 } 261 262 /** 263 * value of change} 264 * @return change 265 */ 266 267 public String getChange() { 268 return this.change; 269 } 270 271 /** 272 * <p>Value before the change.</p> 273 * @return previousValue 274 */ 275 276 public java.util.List<com.commercetools.history.models.common.DeliveryItem> getPreviousValue() { 277 return this.previousValue; 278 } 279 280 /** 281 * <p>Value after the change.</p> 282 * @return nextValue 283 */ 284 285 public java.util.List<com.commercetools.history.models.common.DeliveryItem> getNextValue() { 286 return this.nextValue; 287 } 288 289 /** 290 * <p>Information about the updated Parcel.</p> 291 * @return parcel 292 */ 293 294 public com.commercetools.history.models.change_value.ParcelChangeValue getParcel() { 295 return this.parcel; 296 } 297 298 /** 299 * builds SetParcelItemsChange with checking for non-null required values 300 * @return SetParcelItemsChange 301 */ 302 public SetParcelItemsChange build() { 303 Objects.requireNonNull(change, SetParcelItemsChange.class + ": change is missing"); 304 Objects.requireNonNull(previousValue, SetParcelItemsChange.class + ": previousValue is missing"); 305 Objects.requireNonNull(nextValue, SetParcelItemsChange.class + ": nextValue is missing"); 306 Objects.requireNonNull(parcel, SetParcelItemsChange.class + ": parcel is missing"); 307 return new SetParcelItemsChangeImpl(change, previousValue, nextValue, parcel); 308 } 309 310 /** 311 * builds SetParcelItemsChange without checking for non-null required values 312 * @return SetParcelItemsChange 313 */ 314 public SetParcelItemsChange buildUnchecked() { 315 return new SetParcelItemsChangeImpl(change, previousValue, nextValue, parcel); 316 } 317 318 /** 319 * factory method for an instance of SetParcelItemsChangeBuilder 320 * @return builder 321 */ 322 public static SetParcelItemsChangeBuilder of() { 323 return new SetParcelItemsChangeBuilder(); 324 } 325 326 /** 327 * create builder for SetParcelItemsChange instance 328 * @param template instance with prefilled values for the builder 329 * @return builder 330 */ 331 public static SetParcelItemsChangeBuilder of(final SetParcelItemsChange template) { 332 SetParcelItemsChangeBuilder builder = new SetParcelItemsChangeBuilder(); 333 builder.change = template.getChange(); 334 builder.previousValue = template.getPreviousValue(); 335 builder.nextValue = template.getNextValue(); 336 builder.parcel = template.getParcel(); 337 return builder; 338 } 339 340}