001
002package com.commercetools.api.models.me;
003
004import java.util.*;
005import java.util.function.Function;
006
007import javax.annotation.Nullable;
008
009import io.vrap.rmf.base.client.Builder;
010import io.vrap.rmf.base.client.utils.Generated;
011
012/**
013 * MyCartSetLineItemShippingDetailsActionBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     MyCartSetLineItemShippingDetailsAction myCartSetLineItemShippingDetailsAction = MyCartSetLineItemShippingDetailsAction.builder()
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 MyCartSetLineItemShippingDetailsActionBuilder implements Builder<MyCartSetLineItemShippingDetailsAction> {
025
026    @Nullable
027    private String lineItemId;
028
029    @Nullable
030    private String lineItemKey;
031
032    @Nullable
033    private com.commercetools.api.models.cart.ItemShippingDetailsDraft shippingDetails;
034
035    /**
036     *  <p><code>id</code> of the LineItem to update. Either <code>lineItemId</code> or <code>lineItemKey</code> is required.</p>
037     * @param lineItemId value to be set
038     * @return Builder
039     */
040
041    public MyCartSetLineItemShippingDetailsActionBuilder lineItemId(@Nullable final String lineItemId) {
042        this.lineItemId = lineItemId;
043        return this;
044    }
045
046    /**
047     *  <p><code>key</code> of the LineItem to update. Either <code>lineItemId</code> or <code>lineItemKey</code> is required.</p>
048     * @param lineItemKey value to be set
049     * @return Builder
050     */
051
052    public MyCartSetLineItemShippingDetailsActionBuilder lineItemKey(@Nullable final String lineItemKey) {
053        this.lineItemKey = lineItemKey;
054        return this;
055    }
056
057    /**
058     *  <p>Value to set. If empty, the existing value is removed.</p>
059     * @param builder function to build the shippingDetails value
060     * @return Builder
061     */
062
063    public MyCartSetLineItemShippingDetailsActionBuilder shippingDetails(
064            Function<com.commercetools.api.models.cart.ItemShippingDetailsDraftBuilder, com.commercetools.api.models.cart.ItemShippingDetailsDraftBuilder> builder) {
065        this.shippingDetails = builder.apply(com.commercetools.api.models.cart.ItemShippingDetailsDraftBuilder.of())
066                .build();
067        return this;
068    }
069
070    /**
071     *  <p>Value to set. If empty, the existing value is removed.</p>
072     * @param builder function to build the shippingDetails value
073     * @return Builder
074     */
075
076    public MyCartSetLineItemShippingDetailsActionBuilder withShippingDetails(
077            Function<com.commercetools.api.models.cart.ItemShippingDetailsDraftBuilder, com.commercetools.api.models.cart.ItemShippingDetailsDraft> builder) {
078        this.shippingDetails = builder.apply(com.commercetools.api.models.cart.ItemShippingDetailsDraftBuilder.of());
079        return this;
080    }
081
082    /**
083     *  <p>Value to set. If empty, the existing value is removed.</p>
084     * @param shippingDetails value to be set
085     * @return Builder
086     */
087
088    public MyCartSetLineItemShippingDetailsActionBuilder shippingDetails(
089            @Nullable final com.commercetools.api.models.cart.ItemShippingDetailsDraft shippingDetails) {
090        this.shippingDetails = shippingDetails;
091        return this;
092    }
093
094    /**
095     *  <p><code>id</code> of the LineItem to update. Either <code>lineItemId</code> or <code>lineItemKey</code> is required.</p>
096     * @return lineItemId
097     */
098
099    @Nullable
100    public String getLineItemId() {
101        return this.lineItemId;
102    }
103
104    /**
105     *  <p><code>key</code> of the LineItem to update. Either <code>lineItemId</code> or <code>lineItemKey</code> is required.</p>
106     * @return lineItemKey
107     */
108
109    @Nullable
110    public String getLineItemKey() {
111        return this.lineItemKey;
112    }
113
114    /**
115     *  <p>Value to set. If empty, the existing value is removed.</p>
116     * @return shippingDetails
117     */
118
119    @Nullable
120    public com.commercetools.api.models.cart.ItemShippingDetailsDraft getShippingDetails() {
121        return this.shippingDetails;
122    }
123
124    /**
125     * builds MyCartSetLineItemShippingDetailsAction with checking for non-null required values
126     * @return MyCartSetLineItemShippingDetailsAction
127     */
128    public MyCartSetLineItemShippingDetailsAction build() {
129        return new MyCartSetLineItemShippingDetailsActionImpl(lineItemId, lineItemKey, shippingDetails);
130    }
131
132    /**
133     * builds MyCartSetLineItemShippingDetailsAction without checking for non-null required values
134     * @return MyCartSetLineItemShippingDetailsAction
135     */
136    public MyCartSetLineItemShippingDetailsAction buildUnchecked() {
137        return new MyCartSetLineItemShippingDetailsActionImpl(lineItemId, lineItemKey, shippingDetails);
138    }
139
140    /**
141     * factory method for an instance of MyCartSetLineItemShippingDetailsActionBuilder
142     * @return builder
143     */
144    public static MyCartSetLineItemShippingDetailsActionBuilder of() {
145        return new MyCartSetLineItemShippingDetailsActionBuilder();
146    }
147
148    /**
149     * create builder for MyCartSetLineItemShippingDetailsAction instance
150     * @param template instance with prefilled values for the builder
151     * @return builder
152     */
153    public static MyCartSetLineItemShippingDetailsActionBuilder of(
154            final MyCartSetLineItemShippingDetailsAction template) {
155        MyCartSetLineItemShippingDetailsActionBuilder builder = new MyCartSetLineItemShippingDetailsActionBuilder();
156        builder.lineItemId = template.getLineItemId();
157        builder.lineItemKey = template.getLineItemKey();
158        builder.shippingDetails = template.getShippingDetails();
159        return builder;
160    }
161
162}