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 * ChangeLocalizedEnumValueLabelChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     ChangeLocalizedEnumValueLabelChange changeLocalizedEnumValueLabelChange = ChangeLocalizedEnumValueLabelChange.builder()
017 *             .change("{change}")
018 *             .previousValue(previousValueBuilder -> previousValueBuilder)
019 *             .nextValue(nextValueBuilder -> nextValueBuilder)
020 *             .fieldName("{fieldName}")
021 *             .attributeName("{attributeName}")
022 *             .valueKey("{valueKey}")
023 *             .build()
024 * </code></pre>
025 * </div>
026 */
027@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
028public class ChangeLocalizedEnumValueLabelChangeBuilder implements Builder<ChangeLocalizedEnumValueLabelChange> {
029
030    private String change;
031
032    private com.commercetools.history.models.common.LocalizedString previousValue;
033
034    private com.commercetools.history.models.common.LocalizedString nextValue;
035
036    private String fieldName;
037
038    private String attributeName;
039
040    private String valueKey;
041
042    /**
043     * set the value to the change
044     * @param change value to be set
045     * @return Builder
046     */
047
048    public ChangeLocalizedEnumValueLabelChangeBuilder change(final String change) {
049        this.change = change;
050        return this;
051    }
052
053    /**
054     *  <p>Value before the change.</p>
055     * @param builder function to build the previousValue value
056     * @return Builder
057     */
058
059    public ChangeLocalizedEnumValueLabelChangeBuilder previousValue(
060            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedStringBuilder> builder) {
061        this.previousValue = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of()).build();
062        return this;
063    }
064
065    /**
066     *  <p>Value before the change.</p>
067     * @param builder function to build the previousValue value
068     * @return Builder
069     */
070
071    public ChangeLocalizedEnumValueLabelChangeBuilder withPreviousValue(
072            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedString> builder) {
073        this.previousValue = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of());
074        return this;
075    }
076
077    /**
078     *  <p>Value before the change.</p>
079     * @param previousValue value to be set
080     * @return Builder
081     */
082
083    public ChangeLocalizedEnumValueLabelChangeBuilder previousValue(
084            final com.commercetools.history.models.common.LocalizedString previousValue) {
085        this.previousValue = previousValue;
086        return this;
087    }
088
089    /**
090     *  <p>Value after the change.</p>
091     * @param builder function to build the nextValue value
092     * @return Builder
093     */
094
095    public ChangeLocalizedEnumValueLabelChangeBuilder nextValue(
096            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedStringBuilder> builder) {
097        this.nextValue = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of()).build();
098        return this;
099    }
100
101    /**
102     *  <p>Value after the change.</p>
103     * @param builder function to build the nextValue value
104     * @return Builder
105     */
106
107    public ChangeLocalizedEnumValueLabelChangeBuilder withNextValue(
108            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedString> builder) {
109        this.nextValue = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of());
110        return this;
111    }
112
113    /**
114     *  <p>Value after the change.</p>
115     * @param nextValue value to be set
116     * @return Builder
117     */
118
119    public ChangeLocalizedEnumValueLabelChangeBuilder nextValue(
120            final com.commercetools.history.models.common.LocalizedString nextValue) {
121        this.nextValue = nextValue;
122        return this;
123    }
124
125    /**
126     *  <p>Name of the updated FieldDefinition; only present on changes to Types.</p>
127     * @param fieldName value to be set
128     * @return Builder
129     */
130
131    public ChangeLocalizedEnumValueLabelChangeBuilder fieldName(final String fieldName) {
132        this.fieldName = fieldName;
133        return this;
134    }
135
136    /**
137     *  <p>Name of the updated AttributeDefinition; only present on changes to Product Types.</p>
138     * @param attributeName value to be set
139     * @return Builder
140     */
141
142    public ChangeLocalizedEnumValueLabelChangeBuilder attributeName(final String attributeName) {
143        this.attributeName = attributeName;
144        return this;
145    }
146
147    /**
148     *  <p>Key of the updated values.</p>
149     * @param valueKey value to be set
150     * @return Builder
151     */
152
153    public ChangeLocalizedEnumValueLabelChangeBuilder valueKey(final String valueKey) {
154        this.valueKey = valueKey;
155        return this;
156    }
157
158    /**
159     * value of change}
160     * @return change
161     */
162
163    public String getChange() {
164        return this.change;
165    }
166
167    /**
168     *  <p>Value before the change.</p>
169     * @return previousValue
170     */
171
172    public com.commercetools.history.models.common.LocalizedString getPreviousValue() {
173        return this.previousValue;
174    }
175
176    /**
177     *  <p>Value after the change.</p>
178     * @return nextValue
179     */
180
181    public com.commercetools.history.models.common.LocalizedString getNextValue() {
182        return this.nextValue;
183    }
184
185    /**
186     *  <p>Name of the updated FieldDefinition; only present on changes to Types.</p>
187     * @return fieldName
188     */
189
190    public String getFieldName() {
191        return this.fieldName;
192    }
193
194    /**
195     *  <p>Name of the updated AttributeDefinition; only present on changes to Product Types.</p>
196     * @return attributeName
197     */
198
199    public String getAttributeName() {
200        return this.attributeName;
201    }
202
203    /**
204     *  <p>Key of the updated values.</p>
205     * @return valueKey
206     */
207
208    public String getValueKey() {
209        return this.valueKey;
210    }
211
212    /**
213     * builds ChangeLocalizedEnumValueLabelChange with checking for non-null required values
214     * @return ChangeLocalizedEnumValueLabelChange
215     */
216    public ChangeLocalizedEnumValueLabelChange build() {
217        Objects.requireNonNull(change, ChangeLocalizedEnumValueLabelChange.class + ": change is missing");
218        Objects.requireNonNull(previousValue, ChangeLocalizedEnumValueLabelChange.class + ": previousValue is missing");
219        Objects.requireNonNull(nextValue, ChangeLocalizedEnumValueLabelChange.class + ": nextValue is missing");
220        Objects.requireNonNull(fieldName, ChangeLocalizedEnumValueLabelChange.class + ": fieldName is missing");
221        Objects.requireNonNull(attributeName, ChangeLocalizedEnumValueLabelChange.class + ": attributeName is missing");
222        Objects.requireNonNull(valueKey, ChangeLocalizedEnumValueLabelChange.class + ": valueKey is missing");
223        return new ChangeLocalizedEnumValueLabelChangeImpl(change, previousValue, nextValue, fieldName, attributeName,
224            valueKey);
225    }
226
227    /**
228     * builds ChangeLocalizedEnumValueLabelChange without checking for non-null required values
229     * @return ChangeLocalizedEnumValueLabelChange
230     */
231    public ChangeLocalizedEnumValueLabelChange buildUnchecked() {
232        return new ChangeLocalizedEnumValueLabelChangeImpl(change, previousValue, nextValue, fieldName, attributeName,
233            valueKey);
234    }
235
236    /**
237     * factory method for an instance of ChangeLocalizedEnumValueLabelChangeBuilder
238     * @return builder
239     */
240    public static ChangeLocalizedEnumValueLabelChangeBuilder of() {
241        return new ChangeLocalizedEnumValueLabelChangeBuilder();
242    }
243
244    /**
245     * create builder for ChangeLocalizedEnumValueLabelChange instance
246     * @param template instance with prefilled values for the builder
247     * @return builder
248     */
249    public static ChangeLocalizedEnumValueLabelChangeBuilder of(final ChangeLocalizedEnumValueLabelChange template) {
250        ChangeLocalizedEnumValueLabelChangeBuilder builder = new ChangeLocalizedEnumValueLabelChangeBuilder();
251        builder.change = template.getChange();
252        builder.previousValue = template.getPreviousValue();
253        builder.nextValue = template.getNextValue();
254        builder.fieldName = template.getFieldName();
255        builder.attributeName = template.getAttributeName();
256        builder.valueKey = template.getValueKey();
257        return builder;
258    }
259
260}