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 * SetParcelMeasurementsChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     SetParcelMeasurementsChange setParcelMeasurementsChange = SetParcelMeasurementsChange.builder()
017 *             .change("{change}")
018 *             .previousValue(previousValueBuilder -> previousValueBuilder)
019 *             .nextValue(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 SetParcelMeasurementsChangeBuilder implements Builder<SetParcelMeasurementsChange> {
027
028    private String change;
029
030    private com.commercetools.history.models.common.ParcelMeasurements previousValue;
031
032    private com.commercetools.history.models.common.ParcelMeasurements 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 SetParcelMeasurementsChangeBuilder change(final String change) {
043        this.change = change;
044        return this;
045    }
046
047    /**
048     *  <p>Value before the change.</p>
049     * @param builder function to build the previousValue value
050     * @return Builder
051     */
052
053    public SetParcelMeasurementsChangeBuilder previousValue(
054            Function<com.commercetools.history.models.common.ParcelMeasurementsBuilder, com.commercetools.history.models.common.ParcelMeasurementsBuilder> builder) {
055        this.previousValue = builder.apply(com.commercetools.history.models.common.ParcelMeasurementsBuilder.of())
056                .build();
057        return this;
058    }
059
060    /**
061     *  <p>Value before the change.</p>
062     * @param builder function to build the previousValue value
063     * @return Builder
064     */
065
066    public SetParcelMeasurementsChangeBuilder withPreviousValue(
067            Function<com.commercetools.history.models.common.ParcelMeasurementsBuilder, com.commercetools.history.models.common.ParcelMeasurements> builder) {
068        this.previousValue = builder.apply(com.commercetools.history.models.common.ParcelMeasurementsBuilder.of());
069        return this;
070    }
071
072    /**
073     *  <p>Value before the change.</p>
074     * @param previousValue value to be set
075     * @return Builder
076     */
077
078    public SetParcelMeasurementsChangeBuilder previousValue(
079            final com.commercetools.history.models.common.ParcelMeasurements previousValue) {
080        this.previousValue = previousValue;
081        return this;
082    }
083
084    /**
085     *  <p>Value after the change.</p>
086     * @param builder function to build the nextValue value
087     * @return Builder
088     */
089
090    public SetParcelMeasurementsChangeBuilder nextValue(
091            Function<com.commercetools.history.models.common.ParcelMeasurementsBuilder, com.commercetools.history.models.common.ParcelMeasurementsBuilder> builder) {
092        this.nextValue = builder.apply(com.commercetools.history.models.common.ParcelMeasurementsBuilder.of()).build();
093        return this;
094    }
095
096    /**
097     *  <p>Value after the change.</p>
098     * @param builder function to build the nextValue value
099     * @return Builder
100     */
101
102    public SetParcelMeasurementsChangeBuilder withNextValue(
103            Function<com.commercetools.history.models.common.ParcelMeasurementsBuilder, com.commercetools.history.models.common.ParcelMeasurements> builder) {
104        this.nextValue = builder.apply(com.commercetools.history.models.common.ParcelMeasurementsBuilder.of());
105        return this;
106    }
107
108    /**
109     *  <p>Value after the change.</p>
110     * @param nextValue value to be set
111     * @return Builder
112     */
113
114    public SetParcelMeasurementsChangeBuilder nextValue(
115            final com.commercetools.history.models.common.ParcelMeasurements nextValue) {
116        this.nextValue = nextValue;
117        return this;
118    }
119
120    /**
121     *  <p>Information about the updated Parcel.</p>
122     * @param builder function to build the parcel value
123     * @return Builder
124     */
125
126    public SetParcelMeasurementsChangeBuilder parcel(
127            Function<com.commercetools.history.models.change_value.ParcelChangeValueBuilder, com.commercetools.history.models.change_value.ParcelChangeValueBuilder> builder) {
128        this.parcel = builder.apply(com.commercetools.history.models.change_value.ParcelChangeValueBuilder.of())
129                .build();
130        return this;
131    }
132
133    /**
134     *  <p>Information about the updated Parcel.</p>
135     * @param builder function to build the parcel value
136     * @return Builder
137     */
138
139    public SetParcelMeasurementsChangeBuilder withParcel(
140            Function<com.commercetools.history.models.change_value.ParcelChangeValueBuilder, com.commercetools.history.models.change_value.ParcelChangeValue> builder) {
141        this.parcel = builder.apply(com.commercetools.history.models.change_value.ParcelChangeValueBuilder.of());
142        return this;
143    }
144
145    /**
146     *  <p>Information about the updated Parcel.</p>
147     * @param parcel value to be set
148     * @return Builder
149     */
150
151    public SetParcelMeasurementsChangeBuilder parcel(
152            final com.commercetools.history.models.change_value.ParcelChangeValue parcel) {
153        this.parcel = parcel;
154        return this;
155    }
156
157    /**
158     * value of change}
159     * @return change
160     */
161
162    public String getChange() {
163        return this.change;
164    }
165
166    /**
167     *  <p>Value before the change.</p>
168     * @return previousValue
169     */
170
171    public com.commercetools.history.models.common.ParcelMeasurements getPreviousValue() {
172        return this.previousValue;
173    }
174
175    /**
176     *  <p>Value after the change.</p>
177     * @return nextValue
178     */
179
180    public com.commercetools.history.models.common.ParcelMeasurements getNextValue() {
181        return this.nextValue;
182    }
183
184    /**
185     *  <p>Information about the updated Parcel.</p>
186     * @return parcel
187     */
188
189    public com.commercetools.history.models.change_value.ParcelChangeValue getParcel() {
190        return this.parcel;
191    }
192
193    /**
194     * builds SetParcelMeasurementsChange with checking for non-null required values
195     * @return SetParcelMeasurementsChange
196     */
197    public SetParcelMeasurementsChange build() {
198        Objects.requireNonNull(change, SetParcelMeasurementsChange.class + ": change is missing");
199        Objects.requireNonNull(previousValue, SetParcelMeasurementsChange.class + ": previousValue is missing");
200        Objects.requireNonNull(nextValue, SetParcelMeasurementsChange.class + ": nextValue is missing");
201        Objects.requireNonNull(parcel, SetParcelMeasurementsChange.class + ": parcel is missing");
202        return new SetParcelMeasurementsChangeImpl(change, previousValue, nextValue, parcel);
203    }
204
205    /**
206     * builds SetParcelMeasurementsChange without checking for non-null required values
207     * @return SetParcelMeasurementsChange
208     */
209    public SetParcelMeasurementsChange buildUnchecked() {
210        return new SetParcelMeasurementsChangeImpl(change, previousValue, nextValue, parcel);
211    }
212
213    /**
214     * factory method for an instance of SetParcelMeasurementsChangeBuilder
215     * @return builder
216     */
217    public static SetParcelMeasurementsChangeBuilder of() {
218        return new SetParcelMeasurementsChangeBuilder();
219    }
220
221    /**
222     * create builder for SetParcelMeasurementsChange instance
223     * @param template instance with prefilled values for the builder
224     * @return builder
225     */
226    public static SetParcelMeasurementsChangeBuilder of(final SetParcelMeasurementsChange template) {
227        SetParcelMeasurementsChangeBuilder builder = new SetParcelMeasurementsChangeBuilder();
228        builder.change = template.getChange();
229        builder.previousValue = template.getPreviousValue();
230        builder.nextValue = template.getNextValue();
231        builder.parcel = template.getParcel();
232        return builder;
233    }
234
235}