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 * AddParcelToDeliveryChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     AddParcelToDeliveryChange addParcelToDeliveryChange = AddParcelToDeliveryChange.builder()
017 *             .change("{change}")
018 *             .nextValue(nextValueBuilder -> nextValueBuilder)
019 *             .deliveryId("{deliveryId}")
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 AddParcelToDeliveryChangeBuilder implements Builder<AddParcelToDeliveryChange> {
026
027    private String change;
028
029    private com.commercetools.history.models.common.Parcel nextValue;
030
031    private String deliveryId;
032
033    /**
034     * set the value to the change
035     * @param change value to be set
036     * @return Builder
037     */
038
039    public AddParcelToDeliveryChangeBuilder change(final String change) {
040        this.change = change;
041        return this;
042    }
043
044    /**
045     *  <p>Value after the change.</p>
046     * @param builder function to build the nextValue value
047     * @return Builder
048     */
049
050    public AddParcelToDeliveryChangeBuilder nextValue(
051            Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.ParcelBuilder> builder) {
052        this.nextValue = builder.apply(com.commercetools.history.models.common.ParcelBuilder.of()).build();
053        return this;
054    }
055
056    /**
057     *  <p>Value after the change.</p>
058     * @param builder function to build the nextValue value
059     * @return Builder
060     */
061
062    public AddParcelToDeliveryChangeBuilder withNextValue(
063            Function<com.commercetools.history.models.common.ParcelBuilder, com.commercetools.history.models.common.Parcel> builder) {
064        this.nextValue = builder.apply(com.commercetools.history.models.common.ParcelBuilder.of());
065        return this;
066    }
067
068    /**
069     *  <p>Value after the change.</p>
070     * @param nextValue value to be set
071     * @return Builder
072     */
073
074    public AddParcelToDeliveryChangeBuilder nextValue(final com.commercetools.history.models.common.Parcel nextValue) {
075        this.nextValue = nextValue;
076        return this;
077    }
078
079    /**
080     *  <p><code>id</code> of the Delivery to which the Parcel was added.</p>
081     * @param deliveryId value to be set
082     * @return Builder
083     */
084
085    public AddParcelToDeliveryChangeBuilder deliveryId(final String deliveryId) {
086        this.deliveryId = deliveryId;
087        return this;
088    }
089
090    /**
091     * value of change}
092     * @return change
093     */
094
095    public String getChange() {
096        return this.change;
097    }
098
099    /**
100     *  <p>Value after the change.</p>
101     * @return nextValue
102     */
103
104    public com.commercetools.history.models.common.Parcel getNextValue() {
105        return this.nextValue;
106    }
107
108    /**
109     *  <p><code>id</code> of the Delivery to which the Parcel was added.</p>
110     * @return deliveryId
111     */
112
113    public String getDeliveryId() {
114        return this.deliveryId;
115    }
116
117    /**
118     * builds AddParcelToDeliveryChange with checking for non-null required values
119     * @return AddParcelToDeliveryChange
120     */
121    public AddParcelToDeliveryChange build() {
122        Objects.requireNonNull(change, AddParcelToDeliveryChange.class + ": change is missing");
123        Objects.requireNonNull(nextValue, AddParcelToDeliveryChange.class + ": nextValue is missing");
124        Objects.requireNonNull(deliveryId, AddParcelToDeliveryChange.class + ": deliveryId is missing");
125        return new AddParcelToDeliveryChangeImpl(change, nextValue, deliveryId);
126    }
127
128    /**
129     * builds AddParcelToDeliveryChange without checking for non-null required values
130     * @return AddParcelToDeliveryChange
131     */
132    public AddParcelToDeliveryChange buildUnchecked() {
133        return new AddParcelToDeliveryChangeImpl(change, nextValue, deliveryId);
134    }
135
136    /**
137     * factory method for an instance of AddParcelToDeliveryChangeBuilder
138     * @return builder
139     */
140    public static AddParcelToDeliveryChangeBuilder of() {
141        return new AddParcelToDeliveryChangeBuilder();
142    }
143
144    /**
145     * create builder for AddParcelToDeliveryChange instance
146     * @param template instance with prefilled values for the builder
147     * @return builder
148     */
149    public static AddParcelToDeliveryChangeBuilder of(final AddParcelToDeliveryChange template) {
150        AddParcelToDeliveryChangeBuilder builder = new AddParcelToDeliveryChangeBuilder();
151        builder.change = template.getChange();
152        builder.nextValue = template.getNextValue();
153        builder.deliveryId = template.getDeliveryId();
154        return builder;
155    }
156
157}