001
002package com.commercetools.api.models.cart;
003
004import java.util.*;
005
006import javax.annotation.Nullable;
007
008import io.vrap.rmf.base.client.Builder;
009import io.vrap.rmf.base.client.utils.Generated;
010
011/**
012 * CartSetLineItemInventoryModeActionBuilder
013 * <hr>
014 * Example to create an instance using the builder pattern
015 * <div class=code-example>
016 * <pre><code class='java'>
017 *     CartSetLineItemInventoryModeAction cartSetLineItemInventoryModeAction = CartSetLineItemInventoryModeAction.builder()
018 *             .lineItemId("{lineItemId}")
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 CartSetLineItemInventoryModeActionBuilder implements Builder<CartSetLineItemInventoryModeAction> {
025
026    private String lineItemId;
027
028    @Nullable
029    private com.commercetools.api.models.cart.InventoryMode inventoryMode;
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 CartSetLineItemInventoryModeActionBuilder lineItemId(final String lineItemId) {
038        this.lineItemId = lineItemId;
039        return this;
040    }
041
042    /**
043     *  <p>Inventory mode specific to the Line Item only, and valid for the entire <code>quantity</code> of the Line Item. Set only if the inventory mode should be different from the <code>inventoryMode</code> specified on the Cart.</p>
044     * @param inventoryMode value to be set
045     * @return Builder
046     */
047
048    public CartSetLineItemInventoryModeActionBuilder inventoryMode(
049            @Nullable final com.commercetools.api.models.cart.InventoryMode inventoryMode) {
050        this.inventoryMode = inventoryMode;
051        return this;
052    }
053
054    /**
055     *  <p><code>id</code> of the LineItem to update.</p>
056     * @return lineItemId
057     */
058
059    public String getLineItemId() {
060        return this.lineItemId;
061    }
062
063    /**
064     *  <p>Inventory mode specific to the Line Item only, and valid for the entire <code>quantity</code> of the Line Item. Set only if the inventory mode should be different from the <code>inventoryMode</code> specified on the Cart.</p>
065     * @return inventoryMode
066     */
067
068    @Nullable
069    public com.commercetools.api.models.cart.InventoryMode getInventoryMode() {
070        return this.inventoryMode;
071    }
072
073    /**
074     * builds CartSetLineItemInventoryModeAction with checking for non-null required values
075     * @return CartSetLineItemInventoryModeAction
076     */
077    public CartSetLineItemInventoryModeAction build() {
078        Objects.requireNonNull(lineItemId, CartSetLineItemInventoryModeAction.class + ": lineItemId is missing");
079        return new CartSetLineItemInventoryModeActionImpl(lineItemId, inventoryMode);
080    }
081
082    /**
083     * builds CartSetLineItemInventoryModeAction without checking for non-null required values
084     * @return CartSetLineItemInventoryModeAction
085     */
086    public CartSetLineItemInventoryModeAction buildUnchecked() {
087        return new CartSetLineItemInventoryModeActionImpl(lineItemId, inventoryMode);
088    }
089
090    /**
091     * factory method for an instance of CartSetLineItemInventoryModeActionBuilder
092     * @return builder
093     */
094    public static CartSetLineItemInventoryModeActionBuilder of() {
095        return new CartSetLineItemInventoryModeActionBuilder();
096    }
097
098    /**
099     * create builder for CartSetLineItemInventoryModeAction instance
100     * @param template instance with prefilled values for the builder
101     * @return builder
102     */
103    public static CartSetLineItemInventoryModeActionBuilder of(final CartSetLineItemInventoryModeAction template) {
104        CartSetLineItemInventoryModeActionBuilder builder = new CartSetLineItemInventoryModeActionBuilder();
105        builder.lineItemId = template.getLineItemId();
106        builder.inventoryMode = template.getInventoryMode();
107        return builder;
108    }
109
110}