001
002package com.commercetools.api.models.error;
003
004import java.util.*;
005
006import io.vrap.rmf.base.client.Builder;
007import io.vrap.rmf.base.client.utils.Generated;
008
009/**
010 * InvalidItemShippingDetailsErrorBuilder
011 * <hr>
012 * Example to create an instance using the builder pattern
013 * <div class=code-example>
014 * <pre><code class='java'>
015 *     InvalidItemShippingDetailsError invalidItemShippingDetailsError = InvalidItemShippingDetailsError.builder()
016 *             .message("{message}")
017 *             .subject("{subject}")
018 *             .itemId("{itemId}")
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 InvalidItemShippingDetailsErrorBuilder implements Builder<InvalidItemShippingDetailsError> {
025
026    private String message;
027
028    private Map<String, java.lang.Object> values = new HashMap<>();
029
030    private String subject;
031
032    private String itemId;
033
034    /**
035     *  <p><code>"Inconsistent shipping details for $subject with ID $itemId. $subject quantity is $itemQuantity and shippingTargets quantity sum is $quantitySum."</code></p>
036     * @param message value to be set
037     * @return Builder
038     */
039
040    public InvalidItemShippingDetailsErrorBuilder message(final String message) {
041        this.message = message;
042        return this;
043    }
044
045    /**
046     *  <p>Error-specific additional fields.</p>
047     * @param values properties to be set
048     * @return Builder
049     */
050
051    public InvalidItemShippingDetailsErrorBuilder values(final Map<String, java.lang.Object> values) {
052        this.values = values;
053        return this;
054    }
055
056    /**
057     *  <p>Error-specific additional fields.</p>
058     * @param key property name
059     * @param value property value
060     * @return Builder
061     */
062
063    public InvalidItemShippingDetailsErrorBuilder addValue(final String key, final java.lang.Object value) {
064        if (this.values == null) {
065            values = new HashMap<>();
066        }
067        values.put(key, value);
068        return this;
069    }
070
071    /**
072     *  <p><code>"LineItem"</code> or <code>"CustomLineItem"</code></p>
073     * @param subject value to be set
074     * @return Builder
075     */
076
077    public InvalidItemShippingDetailsErrorBuilder subject(final String subject) {
078        this.subject = subject;
079        return this;
080    }
081
082    /**
083     *  <p>Unique identifier of the Line Item or Custom Line Item.</p>
084     * @param itemId value to be set
085     * @return Builder
086     */
087
088    public InvalidItemShippingDetailsErrorBuilder itemId(final String itemId) {
089        this.itemId = itemId;
090        return this;
091    }
092
093    /**
094     *  <p><code>"Inconsistent shipping details for $subject with ID $itemId. $subject quantity is $itemQuantity and shippingTargets quantity sum is $quantitySum."</code></p>
095     * @return message
096     */
097
098    public String getMessage() {
099        return this.message;
100    }
101
102    /**
103     *  <p>Error-specific additional fields.</p>
104     * @return pattern properties
105     */
106
107    public Map<String, java.lang.Object> getValues() {
108        return this.values;
109    }
110
111    /**
112     *  <p><code>"LineItem"</code> or <code>"CustomLineItem"</code></p>
113     * @return subject
114     */
115
116    public String getSubject() {
117        return this.subject;
118    }
119
120    /**
121     *  <p>Unique identifier of the Line Item or Custom Line Item.</p>
122     * @return itemId
123     */
124
125    public String getItemId() {
126        return this.itemId;
127    }
128
129    /**
130     * builds InvalidItemShippingDetailsError with checking for non-null required values
131     * @return InvalidItemShippingDetailsError
132     */
133    public InvalidItemShippingDetailsError build() {
134        Objects.requireNonNull(message, InvalidItemShippingDetailsError.class + ": message is missing");
135        Objects.requireNonNull(subject, InvalidItemShippingDetailsError.class + ": subject is missing");
136        Objects.requireNonNull(itemId, InvalidItemShippingDetailsError.class + ": itemId is missing");
137        return new InvalidItemShippingDetailsErrorImpl(message, values, subject, itemId);
138    }
139
140    /**
141     * builds InvalidItemShippingDetailsError without checking for non-null required values
142     * @return InvalidItemShippingDetailsError
143     */
144    public InvalidItemShippingDetailsError buildUnchecked() {
145        return new InvalidItemShippingDetailsErrorImpl(message, values, subject, itemId);
146    }
147
148    /**
149     * factory method for an instance of InvalidItemShippingDetailsErrorBuilder
150     * @return builder
151     */
152    public static InvalidItemShippingDetailsErrorBuilder of() {
153        return new InvalidItemShippingDetailsErrorBuilder();
154    }
155
156    /**
157     * create builder for InvalidItemShippingDetailsError instance
158     * @param template instance with prefilled values for the builder
159     * @return builder
160     */
161    public static InvalidItemShippingDetailsErrorBuilder of(final InvalidItemShippingDetailsError template) {
162        InvalidItemShippingDetailsErrorBuilder builder = new InvalidItemShippingDetailsErrorBuilder();
163        builder.message = template.getMessage();
164        builder.values = template.values();
165        builder.subject = template.getSubject();
166        builder.itemId = template.getItemId();
167        return builder;
168    }
169
170}