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