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