001
002package com.commercetools.api.models.me;
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 * MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     MyCartApplyDeltaToLineItemShippingDetailsTargetsAction myCartApplyDeltaToLineItemShippingDetailsTargetsAction = MyCartApplyDeltaToLineItemShippingDetailsTargetsAction.builder()
017 *             .lineItemId("{lineItemId}")
018 *             .plusTargetsDelta(targetsDeltaBuilder -> targetsDeltaBuilder)
019 *             .build()
020 * </code></pre>
021 * </div>
022 */
023@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
024public class MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder
025        implements Builder<MyCartApplyDeltaToLineItemShippingDetailsTargetsAction> {
026
027    private String lineItemId;
028
029    private java.util.List<com.commercetools.api.models.cart.ItemShippingTarget> targetsDelta;
030
031    /**
032     *  <p><code>id</code> of the LineItem to update.</p>
033     * @param lineItemId value to be set
034     * @return Builder
035     */
036
037    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder lineItemId(final String lineItemId) {
038        this.lineItemId = lineItemId;
039        return this;
040    }
041
042    /**
043     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
044     * @param targetsDelta value to be set
045     * @return Builder
046     */
047
048    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder targetsDelta(
049            final com.commercetools.api.models.cart.ItemShippingTarget... targetsDelta) {
050        this.targetsDelta = new ArrayList<>(Arrays.asList(targetsDelta));
051        return this;
052    }
053
054    /**
055     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
056     * @param targetsDelta value to be set
057     * @return Builder
058     */
059
060    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder targetsDelta(
061            final java.util.List<com.commercetools.api.models.cart.ItemShippingTarget> targetsDelta) {
062        this.targetsDelta = targetsDelta;
063        return this;
064    }
065
066    /**
067     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
068     * @param targetsDelta value to be set
069     * @return Builder
070     */
071
072    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder plusTargetsDelta(
073            final com.commercetools.api.models.cart.ItemShippingTarget... targetsDelta) {
074        if (this.targetsDelta == null) {
075            this.targetsDelta = new ArrayList<>();
076        }
077        this.targetsDelta.addAll(Arrays.asList(targetsDelta));
078        return this;
079    }
080
081    /**
082     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
083     * @param builder function to build the targetsDelta value
084     * @return Builder
085     */
086
087    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder plusTargetsDelta(
088            Function<com.commercetools.api.models.cart.ItemShippingTargetBuilder, com.commercetools.api.models.cart.ItemShippingTargetBuilder> builder) {
089        if (this.targetsDelta == null) {
090            this.targetsDelta = new ArrayList<>();
091        }
092        this.targetsDelta.add(builder.apply(com.commercetools.api.models.cart.ItemShippingTargetBuilder.of()).build());
093        return this;
094    }
095
096    /**
097     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
098     * @param builder function to build the targetsDelta value
099     * @return Builder
100     */
101
102    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder withTargetsDelta(
103            Function<com.commercetools.api.models.cart.ItemShippingTargetBuilder, com.commercetools.api.models.cart.ItemShippingTargetBuilder> builder) {
104        this.targetsDelta = new ArrayList<>();
105        this.targetsDelta.add(builder.apply(com.commercetools.api.models.cart.ItemShippingTargetBuilder.of()).build());
106        return this;
107    }
108
109    /**
110     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
111     * @param builder function to build the targetsDelta value
112     * @return Builder
113     */
114
115    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder addTargetsDelta(
116            Function<com.commercetools.api.models.cart.ItemShippingTargetBuilder, com.commercetools.api.models.cart.ItemShippingTarget> builder) {
117        return plusTargetsDelta(builder.apply(com.commercetools.api.models.cart.ItemShippingTargetBuilder.of()));
118    }
119
120    /**
121     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
122     * @param builder function to build the targetsDelta value
123     * @return Builder
124     */
125
126    public MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder setTargetsDelta(
127            Function<com.commercetools.api.models.cart.ItemShippingTargetBuilder, com.commercetools.api.models.cart.ItemShippingTarget> builder) {
128        return targetsDelta(builder.apply(com.commercetools.api.models.cart.ItemShippingTargetBuilder.of()));
129    }
130
131    /**
132     *  <p><code>id</code> of the LineItem to update.</p>
133     * @return lineItemId
134     */
135
136    public String getLineItemId() {
137        return this.lineItemId;
138    }
139
140    /**
141     *  <p>Using positive or negative quantities increases or decreases the number of items shipped to an address.</p>
142     * @return targetsDelta
143     */
144
145    public java.util.List<com.commercetools.api.models.cart.ItemShippingTarget> getTargetsDelta() {
146        return this.targetsDelta;
147    }
148
149    /**
150     * builds MyCartApplyDeltaToLineItemShippingDetailsTargetsAction with checking for non-null required values
151     * @return MyCartApplyDeltaToLineItemShippingDetailsTargetsAction
152     */
153    public MyCartApplyDeltaToLineItemShippingDetailsTargetsAction build() {
154        Objects.requireNonNull(lineItemId,
155            MyCartApplyDeltaToLineItemShippingDetailsTargetsAction.class + ": lineItemId is missing");
156        Objects.requireNonNull(targetsDelta,
157            MyCartApplyDeltaToLineItemShippingDetailsTargetsAction.class + ": targetsDelta is missing");
158        return new MyCartApplyDeltaToLineItemShippingDetailsTargetsActionImpl(lineItemId, targetsDelta);
159    }
160
161    /**
162     * builds MyCartApplyDeltaToLineItemShippingDetailsTargetsAction without checking for non-null required values
163     * @return MyCartApplyDeltaToLineItemShippingDetailsTargetsAction
164     */
165    public MyCartApplyDeltaToLineItemShippingDetailsTargetsAction buildUnchecked() {
166        return new MyCartApplyDeltaToLineItemShippingDetailsTargetsActionImpl(lineItemId, targetsDelta);
167    }
168
169    /**
170     * factory method for an instance of MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder
171     * @return builder
172     */
173    public static MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder of() {
174        return new MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder();
175    }
176
177    /**
178     * create builder for MyCartApplyDeltaToLineItemShippingDetailsTargetsAction instance
179     * @param template instance with prefilled values for the builder
180     * @return builder
181     */
182    public static MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder of(
183            final MyCartApplyDeltaToLineItemShippingDetailsTargetsAction template) {
184        MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder builder = new MyCartApplyDeltaToLineItemShippingDetailsTargetsActionBuilder();
185        builder.lineItemId = template.getLineItemId();
186        builder.targetsDelta = template.getTargetsDelta();
187        return builder;
188    }
189
190}