001
002package com.commercetools.api.models.order;
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 * OrderSetReturnItemCustomFieldActionBuilder
013 * <hr>
014 * Example to create an instance using the builder pattern
015 * <div class=code-example>
016 * <pre><code class='java'>
017 *     OrderSetReturnItemCustomFieldAction orderSetReturnItemCustomFieldAction = OrderSetReturnItemCustomFieldAction.builder()
018 *             .name("{name}")
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 OrderSetReturnItemCustomFieldActionBuilder implements Builder<OrderSetReturnItemCustomFieldAction> {
025
026    @Nullable
027    private String returnItemId;
028
029    @Nullable
030    private String returnItemKey;
031
032    private String name;
033
034    @Nullable
035    private java.lang.Object value;
036
037    /**
038     *  <p><code>id</code> of the ReturnItem to update. Either <code>returnItemId</code> or <code>returnItemKey</code> is required.</p>
039     * @param returnItemId value to be set
040     * @return Builder
041     */
042
043    public OrderSetReturnItemCustomFieldActionBuilder returnItemId(@Nullable final String returnItemId) {
044        this.returnItemId = returnItemId;
045        return this;
046    }
047
048    /**
049     *  <p><code>key</code> of the ReturnItem to update. Either <code>returnItemId</code> or <code>returnItemKey</code> is required.</p>
050     * @param returnItemKey value to be set
051     * @return Builder
052     */
053
054    public OrderSetReturnItemCustomFieldActionBuilder returnItemKey(@Nullable final String returnItemKey) {
055        this.returnItemKey = returnItemKey;
056        return this;
057    }
058
059    /**
060     *  <p>Name of the Custom Field.</p>
061     * @param name value to be set
062     * @return Builder
063     */
064
065    public OrderSetReturnItemCustomFieldActionBuilder name(final String name) {
066        this.name = name;
067        return this;
068    }
069
070    /**
071     *  <p>If <code>value</code> is absent or <code>null</code>, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If <code>value</code> is provided, it is set for the field defined by <code>name</code>.</p>
072     * @param value value to be set
073     * @return Builder
074     */
075
076    public OrderSetReturnItemCustomFieldActionBuilder value(@Nullable final java.lang.Object value) {
077        this.value = value;
078        return this;
079    }
080
081    /**
082     *  <p><code>id</code> of the ReturnItem to update. Either <code>returnItemId</code> or <code>returnItemKey</code> is required.</p>
083     * @return returnItemId
084     */
085
086    @Nullable
087    public String getReturnItemId() {
088        return this.returnItemId;
089    }
090
091    /**
092     *  <p><code>key</code> of the ReturnItem to update. Either <code>returnItemId</code> or <code>returnItemKey</code> is required.</p>
093     * @return returnItemKey
094     */
095
096    @Nullable
097    public String getReturnItemKey() {
098        return this.returnItemKey;
099    }
100
101    /**
102     *  <p>Name of the Custom Field.</p>
103     * @return name
104     */
105
106    public String getName() {
107        return this.name;
108    }
109
110    /**
111     *  <p>If <code>value</code> is absent or <code>null</code>, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If <code>value</code> is provided, it is set for the field defined by <code>name</code>.</p>
112     * @return value
113     */
114
115    @Nullable
116    public java.lang.Object getValue() {
117        return this.value;
118    }
119
120    /**
121     * builds OrderSetReturnItemCustomFieldAction with checking for non-null required values
122     * @return OrderSetReturnItemCustomFieldAction
123     */
124    public OrderSetReturnItemCustomFieldAction build() {
125        Objects.requireNonNull(name, OrderSetReturnItemCustomFieldAction.class + ": name is missing");
126        return new OrderSetReturnItemCustomFieldActionImpl(returnItemId, returnItemKey, name, value);
127    }
128
129    /**
130     * builds OrderSetReturnItemCustomFieldAction without checking for non-null required values
131     * @return OrderSetReturnItemCustomFieldAction
132     */
133    public OrderSetReturnItemCustomFieldAction buildUnchecked() {
134        return new OrderSetReturnItemCustomFieldActionImpl(returnItemId, returnItemKey, name, value);
135    }
136
137    /**
138     * factory method for an instance of OrderSetReturnItemCustomFieldActionBuilder
139     * @return builder
140     */
141    public static OrderSetReturnItemCustomFieldActionBuilder of() {
142        return new OrderSetReturnItemCustomFieldActionBuilder();
143    }
144
145    /**
146     * create builder for OrderSetReturnItemCustomFieldAction instance
147     * @param template instance with prefilled values for the builder
148     * @return builder
149     */
150    public static OrderSetReturnItemCustomFieldActionBuilder of(final OrderSetReturnItemCustomFieldAction template) {
151        OrderSetReturnItemCustomFieldActionBuilder builder = new OrderSetReturnItemCustomFieldActionBuilder();
152        builder.returnItemId = template.getReturnItemId();
153        builder.returnItemKey = template.getReturnItemKey();
154        builder.name = template.getName();
155        builder.value = template.getValue();
156        return builder;
157    }
158
159}