001 002package com.commercetools.history.models.change_value; 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 * DeliveryChangeValueBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * DeliveryChangeValue deliveryChangeValue = DeliveryChangeValue.builder() 017 * .plusItems(itemsBuilder -> itemsBuilder) 018 * .address(addressBuilder -> addressBuilder) 019 * .plusParcels(parcelsBuilder -> parcelsBuilder) 020 * .build() 021 * </code></pre> 022 * </div> 023 */ 024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 025public class DeliveryChangeValueBuilder implements Builder<DeliveryChangeValue> { 026 027 private java.util.List<com.commercetools.history.models.common.DeliveryItem> items; 028 029 private com.commercetools.history.models.common.Address address; 030 031 private java.util.List<com.commercetools.history.models.common.Parcel> parcels; 032 033 /** 034 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 035 * @param items value to be set 036 * @return Builder 037 */ 038 039 public DeliveryChangeValueBuilder items(final com.commercetools.history.models.common.DeliveryItem... items) { 040 this.items = new ArrayList<>(Arrays.asList(items)); 041 return this; 042 } 043 044 /** 045 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 046 * @param items value to be set 047 * @return Builder 048 */ 049 050 public DeliveryChangeValueBuilder items( 051 final java.util.List<com.commercetools.history.models.common.DeliveryItem> items) { 052 this.items = items; 053 return this; 054 } 055 056 /** 057 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 058 * @param items value to be set 059 * @return Builder 060 */ 061 062 public DeliveryChangeValueBuilder plusItems(final com.commercetools.history.models.common.DeliveryItem... items) { 063 if (this.items == null) { 064 this.items = new ArrayList<>(); 065 } 066 this.items.addAll(Arrays.asList(items)); 067 return this; 068 } 069 070 /** 071 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 072 * @param builder function to build the items value 073 * @return Builder 074 */ 075 076 public DeliveryChangeValueBuilder plusItems( 077 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 078 if (this.items == null) { 079 this.items = new ArrayList<>(); 080 } 081 this.items.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 082 return this; 083 } 084 085 /** 086 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 087 * @param builder function to build the items value 088 * @return Builder 089 */ 090 091 public DeliveryChangeValueBuilder withItems( 092 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItemBuilder> builder) { 093 this.items = new ArrayList<>(); 094 this.items.add(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of()).build()); 095 return this; 096 } 097 098 /** 099 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 100 * @param builder function to build the items value 101 * @return Builder 102 */ 103 104 public DeliveryChangeValueBuilder addItems( 105 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 106 return plusItems(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 107 } 108 109 /** 110 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 111 * @param builder function to build the items value 112 * @return Builder 113 */ 114 115 public DeliveryChangeValueBuilder setItems( 116 Function<com.commercetools.history.models.common.DeliveryItemBuilder, com.commercetools.history.models.common.DeliveryItem> builder) { 117 return items(builder.apply(com.commercetools.history.models.common.DeliveryItemBuilder.of())); 118 } 119 120 /** 121 * <p>Address to which the parcels are delivered.</p> 122 * @param builder function to build the address value 123 * @return Builder 124 */ 125 126 public DeliveryChangeValueBuilder address( 127 Function<com.commercetools.history.models.common.AddressBuilder, com.commercetools.history.models.common.AddressBuilder> builder) { 128 this.address = builder.apply(com.commercetools.history.models.common.AddressBuilder.of()).build(); 129 return this; 130 } 131 132 /** 133 * <p>Address to which the parcels are delivered.</p> 134 * @param builder function to build the address value 135 * @return Builder 136 */ 137 138 public DeliveryChangeValueBuilder withAddress( 139 Function<com.commercetools.history.models.common.AddressBuilder, com.commercetools.history.models.common.Address> builder) { 140 this.address = builder.apply(com.commercetools.history.models.common.AddressBuilder.of()); 141 return this; 142 } 143 144 /** 145 * <p>Address to which the parcels are delivered.</p> 146 * @param address value to be set 147 * @return Builder 148 */ 149 150 public DeliveryChangeValueBuilder address(final com.commercetools.history.models.common.Address address) { 151 this.address = address; 152 return this; 153 } 154 155 /** 156 * <p>Parcels included in the Delivery.</p> 157 * @param parcels value to be set 158 * @return Builder 159 */ 160 161 public DeliveryChangeValueBuilder parcels(final com.commercetools.history.models.common.Parcel... parcels) { 162 this.parcels = new ArrayList<>(Arrays.asList(parcels)); 163 return this; 164 } 165 166 /** 167 * <p>Parcels included in the Delivery.</p> 168 * @param parcels value to be set 169 * @return Builder 170 */ 171 172 public DeliveryChangeValueBuilder parcels( 173 final java.util.List<com.commercetools.history.models.common.Parcel> parcels) { 174 this.parcels = parcels; 175 return this; 176 } 177 178 /** 179 * <p>Parcels included in the Delivery.</p> 180 * @param parcels value to be set 181 * @return Builder 182 */ 183 184 public DeliveryChangeValueBuilder plusParcels(final com.commercetools.history.models.common.Parcel... parcels) { 185 if (this.parcels == null) { 186 this.parcels = new ArrayList<>(); 187 } 188 this.parcels.addAll(Arrays.asList(parcels)); 189 return this; 190 } 191 192 /** 193 * <p>Parcels included in the Delivery.</p> 194 * @param builder function to build the parcels value 195 * @return Builder 196 */ 197 198 public DeliveryChangeValueBuilder plusParcels( 199 Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.ParcelBuilder> builder) { 200 if (this.parcels == null) { 201 this.parcels = new ArrayList<>(); 202 } 203 this.parcels.add(builder.apply(com.commercetools.history.models.common.ParcelBuilder.of()).build()); 204 return this; 205 } 206 207 /** 208 * <p>Parcels included in the Delivery.</p> 209 * @param builder function to build the parcels value 210 * @return Builder 211 */ 212 213 public DeliveryChangeValueBuilder withParcels( 214 Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.ParcelBuilder> builder) { 215 this.parcels = new ArrayList<>(); 216 this.parcels.add(builder.apply(com.commercetools.history.models.common.ParcelBuilder.of()).build()); 217 return this; 218 } 219 220 /** 221 * <p>Parcels included in the Delivery.</p> 222 * @param builder function to build the parcels value 223 * @return Builder 224 */ 225 226 public DeliveryChangeValueBuilder addParcels( 227 Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.Parcel> builder) { 228 return plusParcels(builder.apply(com.commercetools.history.models.common.ParcelBuilder.of())); 229 } 230 231 /** 232 * <p>Parcels included in the Delivery.</p> 233 * @param builder function to build the parcels value 234 * @return Builder 235 */ 236 237 public DeliveryChangeValueBuilder setParcels( 238 Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.Parcel> builder) { 239 return parcels(builder.apply(com.commercetools.history.models.common.ParcelBuilder.of())); 240 } 241 242 /** 243 * <p>Line Items or Custom Line Items shipped in the Delivery.</p> 244 * @return items 245 */ 246 247 public java.util.List<com.commercetools.history.models.common.DeliveryItem> getItems() { 248 return this.items; 249 } 250 251 /** 252 * <p>Address to which the parcels are delivered.</p> 253 * @return address 254 */ 255 256 public com.commercetools.history.models.common.Address getAddress() { 257 return this.address; 258 } 259 260 /** 261 * <p>Parcels included in the Delivery.</p> 262 * @return parcels 263 */ 264 265 public java.util.List<com.commercetools.history.models.common.Parcel> getParcels() { 266 return this.parcels; 267 } 268 269 /** 270 * builds DeliveryChangeValue with checking for non-null required values 271 * @return DeliveryChangeValue 272 */ 273 public DeliveryChangeValue build() { 274 Objects.requireNonNull(items, DeliveryChangeValue.class + ": items is missing"); 275 Objects.requireNonNull(address, DeliveryChangeValue.class + ": address is missing"); 276 Objects.requireNonNull(parcels, DeliveryChangeValue.class + ": parcels is missing"); 277 return new DeliveryChangeValueImpl(items, address, parcels); 278 } 279 280 /** 281 * builds DeliveryChangeValue without checking for non-null required values 282 * @return DeliveryChangeValue 283 */ 284 public DeliveryChangeValue buildUnchecked() { 285 return new DeliveryChangeValueImpl(items, address, parcels); 286 } 287 288 /** 289 * factory method for an instance of DeliveryChangeValueBuilder 290 * @return builder 291 */ 292 public static DeliveryChangeValueBuilder of() { 293 return new DeliveryChangeValueBuilder(); 294 } 295 296 /** 297 * create builder for DeliveryChangeValue instance 298 * @param template instance with prefilled values for the builder 299 * @return builder 300 */ 301 public static DeliveryChangeValueBuilder of(final DeliveryChangeValue template) { 302 DeliveryChangeValueBuilder builder = new DeliveryChangeValueBuilder(); 303 builder.items = template.getItems(); 304 builder.address = template.getAddress(); 305 builder.parcels = template.getParcels(); 306 return builder; 307 } 308 309}