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 * ChangeCustomLineItemQuantityChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     ChangeCustomLineItemQuantityChange changeCustomLineItemQuantityChange = ChangeCustomLineItemQuantityChange.builder()
017 *             .change("{change}")
018 *             .previousValue(1)
019 *             .nextValue(1)
020 *             .customLineItem(customLineItemBuilder -> customLineItemBuilder)
021 *             .customLineItemId("{customLineItemId}")
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 ChangeCustomLineItemQuantityChangeBuilder implements Builder<ChangeCustomLineItemQuantityChange> {
028
029    private String change;
030
031    private Integer previousValue;
032
033    private Integer nextValue;
034
035    private com.commercetools.history.models.common.LocalizedString customLineItem;
036
037    private String customLineItemId;
038
039    /**
040     * set the value to the change
041     * @param change value to be set
042     * @return Builder
043     */
044
045    public ChangeCustomLineItemQuantityChangeBuilder 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 ChangeCustomLineItemQuantityChangeBuilder previousValue(final Integer previousValue) {
057        this.previousValue = previousValue;
058        return this;
059    }
060
061    /**
062     *  <p>Value after the change.</p>
063     * @param nextValue value to be set
064     * @return Builder
065     */
066
067    public ChangeCustomLineItemQuantityChangeBuilder nextValue(final Integer nextValue) {
068        this.nextValue = nextValue;
069        return this;
070    }
071
072    /**
073     *  <p>Name of the CustomLineItem.</p>
074     * @param builder function to build the customLineItem value
075     * @return Builder
076     */
077
078    public ChangeCustomLineItemQuantityChangeBuilder customLineItem(
079            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedStringBuilder> builder) {
080        this.customLineItem = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of())
081                .build();
082        return this;
083    }
084
085    /**
086     *  <p>Name of the CustomLineItem.</p>
087     * @param builder function to build the customLineItem value
088     * @return Builder
089     */
090
091    public ChangeCustomLineItemQuantityChangeBuilder withCustomLineItem(
092            Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedString> builder) {
093        this.customLineItem = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of());
094        return this;
095    }
096
097    /**
098     *  <p>Name of the CustomLineItem.</p>
099     * @param customLineItem value to be set
100     * @return Builder
101     */
102
103    public ChangeCustomLineItemQuantityChangeBuilder customLineItem(
104            final com.commercetools.history.models.common.LocalizedString customLineItem) {
105        this.customLineItem = customLineItem;
106        return this;
107    }
108
109    /**
110     *  <p><code>id</code> of the updated CustomLineItem.</p>
111     * @param customLineItemId value to be set
112     * @return Builder
113     */
114
115    public ChangeCustomLineItemQuantityChangeBuilder customLineItemId(final String customLineItemId) {
116        this.customLineItemId = customLineItemId;
117        return this;
118    }
119
120    /**
121     * value of change}
122     * @return change
123     */
124
125    public String getChange() {
126        return this.change;
127    }
128
129    /**
130     *  <p>Value before the change.</p>
131     * @return previousValue
132     */
133
134    public Integer getPreviousValue() {
135        return this.previousValue;
136    }
137
138    /**
139     *  <p>Value after the change.</p>
140     * @return nextValue
141     */
142
143    public Integer getNextValue() {
144        return this.nextValue;
145    }
146
147    /**
148     *  <p>Name of the CustomLineItem.</p>
149     * @return customLineItem
150     */
151
152    public com.commercetools.history.models.common.LocalizedString getCustomLineItem() {
153        return this.customLineItem;
154    }
155
156    /**
157     *  <p><code>id</code> of the updated CustomLineItem.</p>
158     * @return customLineItemId
159     */
160
161    public String getCustomLineItemId() {
162        return this.customLineItemId;
163    }
164
165    /**
166     * builds ChangeCustomLineItemQuantityChange with checking for non-null required values
167     * @return ChangeCustomLineItemQuantityChange
168     */
169    public ChangeCustomLineItemQuantityChange build() {
170        Objects.requireNonNull(change, ChangeCustomLineItemQuantityChange.class + ": change is missing");
171        Objects.requireNonNull(previousValue, ChangeCustomLineItemQuantityChange.class + ": previousValue is missing");
172        Objects.requireNonNull(nextValue, ChangeCustomLineItemQuantityChange.class + ": nextValue is missing");
173        Objects.requireNonNull(customLineItem,
174            ChangeCustomLineItemQuantityChange.class + ": customLineItem is missing");
175        Objects.requireNonNull(customLineItemId,
176            ChangeCustomLineItemQuantityChange.class + ": customLineItemId is missing");
177        return new ChangeCustomLineItemQuantityChangeImpl(change, previousValue, nextValue, customLineItem,
178            customLineItemId);
179    }
180
181    /**
182     * builds ChangeCustomLineItemQuantityChange without checking for non-null required values
183     * @return ChangeCustomLineItemQuantityChange
184     */
185    public ChangeCustomLineItemQuantityChange buildUnchecked() {
186        return new ChangeCustomLineItemQuantityChangeImpl(change, previousValue, nextValue, customLineItem,
187            customLineItemId);
188    }
189
190    /**
191     * factory method for an instance of ChangeCustomLineItemQuantityChangeBuilder
192     * @return builder
193     */
194    public static ChangeCustomLineItemQuantityChangeBuilder of() {
195        return new ChangeCustomLineItemQuantityChangeBuilder();
196    }
197
198    /**
199     * create builder for ChangeCustomLineItemQuantityChange instance
200     * @param template instance with prefilled values for the builder
201     * @return builder
202     */
203    public static ChangeCustomLineItemQuantityChangeBuilder of(final ChangeCustomLineItemQuantityChange template) {
204        ChangeCustomLineItemQuantityChangeBuilder builder = new ChangeCustomLineItemQuantityChangeBuilder();
205        builder.change = template.getChange();
206        builder.previousValue = template.getPreviousValue();
207        builder.nextValue = template.getNextValue();
208        builder.customLineItem = template.getCustomLineItem();
209        builder.customLineItemId = template.getCustomLineItemId();
210        return builder;
211    }
212
213}