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