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 * ChangeShoppingListLineItemQuantityChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     ChangeShoppingListLineItemQuantityChange changeShoppingListLineItemQuantityChange = ChangeShoppingListLineItemQuantityChange.builder()
017 *             .change("{change}")
018 *             .previousValue(1)
019 *             .nextValue(1)
020 *             .lineItem(lineItemBuilder -> lineItemBuilder)
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 ChangeShoppingListLineItemQuantityChangeBuilder
027        implements Builder<ChangeShoppingListLineItemQuantityChange> {
028
029    private String change;
030
031    private Integer previousValue;
032
033    private Integer nextValue;
034
035    private com.commercetools.history.models.change_value.ShoppingListLineItemValue lineItem;
036
037    /**
038     * set the value to the change
039     * @param change value to be set
040     * @return Builder
041     */
042
043    public ChangeShoppingListLineItemQuantityChangeBuilder change(final String change) {
044        this.change = change;
045        return this;
046    }
047
048    /**
049     *  <p>Value before the change.</p>
050     * @param previousValue value to be set
051     * @return Builder
052     */
053
054    public ChangeShoppingListLineItemQuantityChangeBuilder previousValue(final Integer previousValue) {
055        this.previousValue = previousValue;
056        return this;
057    }
058
059    /**
060     *  <p>Value after the change.</p>
061     * @param nextValue value to be set
062     * @return Builder
063     */
064
065    public ChangeShoppingListLineItemQuantityChangeBuilder nextValue(final Integer nextValue) {
066        this.nextValue = nextValue;
067        return this;
068    }
069
070    /**
071     *  <p>Holds information about the updated Shopping List Line Item.</p>
072     * @param builder function to build the lineItem value
073     * @return Builder
074     */
075
076    public ChangeShoppingListLineItemQuantityChangeBuilder lineItem(
077            Function<com.commercetools.history.models.change_value.ShoppingListLineItemValueBuilder, com.commercetools.history.models.change_value.ShoppingListLineItemValueBuilder> builder) {
078        this.lineItem = builder
079                .apply(com.commercetools.history.models.change_value.ShoppingListLineItemValueBuilder.of())
080                .build();
081        return this;
082    }
083
084    /**
085     *  <p>Holds information about the updated Shopping List Line Item.</p>
086     * @param builder function to build the lineItem value
087     * @return Builder
088     */
089
090    public ChangeShoppingListLineItemQuantityChangeBuilder withLineItem(
091            Function<com.commercetools.history.models.change_value.ShoppingListLineItemValueBuilder, com.commercetools.history.models.change_value.ShoppingListLineItemValue> builder) {
092        this.lineItem = builder
093                .apply(com.commercetools.history.models.change_value.ShoppingListLineItemValueBuilder.of());
094        return this;
095    }
096
097    /**
098     *  <p>Holds information about the updated Shopping List Line Item.</p>
099     * @param lineItem value to be set
100     * @return Builder
101     */
102
103    public ChangeShoppingListLineItemQuantityChangeBuilder lineItem(
104            final com.commercetools.history.models.change_value.ShoppingListLineItemValue lineItem) {
105        this.lineItem = lineItem;
106        return this;
107    }
108
109    /**
110     * value of change}
111     * @return change
112     */
113
114    public String getChange() {
115        return this.change;
116    }
117
118    /**
119     *  <p>Value before the change.</p>
120     * @return previousValue
121     */
122
123    public Integer getPreviousValue() {
124        return this.previousValue;
125    }
126
127    /**
128     *  <p>Value after the change.</p>
129     * @return nextValue
130     */
131
132    public Integer getNextValue() {
133        return this.nextValue;
134    }
135
136    /**
137     *  <p>Holds information about the updated Shopping List Line Item.</p>
138     * @return lineItem
139     */
140
141    public com.commercetools.history.models.change_value.ShoppingListLineItemValue getLineItem() {
142        return this.lineItem;
143    }
144
145    /**
146     * builds ChangeShoppingListLineItemQuantityChange with checking for non-null required values
147     * @return ChangeShoppingListLineItemQuantityChange
148     */
149    public ChangeShoppingListLineItemQuantityChange build() {
150        Objects.requireNonNull(change, ChangeShoppingListLineItemQuantityChange.class + ": change is missing");
151        Objects.requireNonNull(previousValue,
152            ChangeShoppingListLineItemQuantityChange.class + ": previousValue is missing");
153        Objects.requireNonNull(nextValue, ChangeShoppingListLineItemQuantityChange.class + ": nextValue is missing");
154        Objects.requireNonNull(lineItem, ChangeShoppingListLineItemQuantityChange.class + ": lineItem is missing");
155        return new ChangeShoppingListLineItemQuantityChangeImpl(change, previousValue, nextValue, lineItem);
156    }
157
158    /**
159     * builds ChangeShoppingListLineItemQuantityChange without checking for non-null required values
160     * @return ChangeShoppingListLineItemQuantityChange
161     */
162    public ChangeShoppingListLineItemQuantityChange buildUnchecked() {
163        return new ChangeShoppingListLineItemQuantityChangeImpl(change, previousValue, nextValue, lineItem);
164    }
165
166    /**
167     * factory method for an instance of ChangeShoppingListLineItemQuantityChangeBuilder
168     * @return builder
169     */
170    public static ChangeShoppingListLineItemQuantityChangeBuilder of() {
171        return new ChangeShoppingListLineItemQuantityChangeBuilder();
172    }
173
174    /**
175     * create builder for ChangeShoppingListLineItemQuantityChange instance
176     * @param template instance with prefilled values for the builder
177     * @return builder
178     */
179    public static ChangeShoppingListLineItemQuantityChangeBuilder of(
180            final ChangeShoppingListLineItemQuantityChange template) {
181        ChangeShoppingListLineItemQuantityChangeBuilder builder = new ChangeShoppingListLineItemQuantityChangeBuilder();
182        builder.change = template.getChange();
183        builder.previousValue = template.getPreviousValue();
184        builder.nextValue = template.getNextValue();
185        builder.lineItem = template.getLineItem();
186        return builder;
187    }
188
189}