001
002package com.commercetools.api.models.error;
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 * ExtensionUpdateActionsFailedErrorBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     ExtensionUpdateActionsFailedError extensionUpdateActionsFailedError = ExtensionUpdateActionsFailedError.builder()
019 *             .message("{message}")
020 *             .plusExtensionErrors(extensionErrorsBuilder -> extensionErrorsBuilder)
021 *             .build()
022 * </code></pre>
023 * </div>
024 */
025@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
026public class ExtensionUpdateActionsFailedErrorBuilder implements Builder<ExtensionUpdateActionsFailedError> {
027
028    private String message;
029
030    private Map<String, java.lang.Object> values = new HashMap<>();
031
032    @Nullable
033    private com.commercetools.api.models.common.LocalizedString localizedMessage;
034
035    @Nullable
036    private java.lang.Object extensionExtraInfo;
037
038    private java.util.List<com.commercetools.api.models.error.ExtensionError> extensionErrors;
039
040    /**
041     *  <p><code>"The extension returned update actions that could not be executed."</code></p>
042     * @param message value to be set
043     * @return Builder
044     */
045
046    public ExtensionUpdateActionsFailedErrorBuilder message(final String message) {
047        this.message = message;
048        return this;
049    }
050
051    /**
052     *  <p>Error-specific additional fields.</p>
053     * @param values properties to be set
054     * @return Builder
055     */
056
057    public ExtensionUpdateActionsFailedErrorBuilder values(final Map<String, java.lang.Object> values) {
058        this.values = values;
059        return this;
060    }
061
062    /**
063     *  <p>Error-specific additional fields.</p>
064     * @param key property name
065     * @param value property value
066     * @return Builder
067     */
068
069    public ExtensionUpdateActionsFailedErrorBuilder addValue(final String key, final java.lang.Object value) {
070        if (this.values == null) {
071            values = new HashMap<>();
072        }
073        values.put(key, value);
074        return this;
075    }
076
077    /**
078     *  <p>User-defined localized description of the error.</p>
079     * @param builder function to build the localizedMessage value
080     * @return Builder
081     */
082
083    public ExtensionUpdateActionsFailedErrorBuilder localizedMessage(
084            Function<com.commercetools.api.models.common.LocalizedStringBuilder, com.commercetools.api.models.common.LocalizedStringBuilder> builder) {
085        this.localizedMessage = builder.apply(com.commercetools.api.models.common.LocalizedStringBuilder.of()).build();
086        return this;
087    }
088
089    /**
090     *  <p>User-defined localized description of the error.</p>
091     * @param builder function to build the localizedMessage value
092     * @return Builder
093     */
094
095    public ExtensionUpdateActionsFailedErrorBuilder withLocalizedMessage(
096            Function<com.commercetools.api.models.common.LocalizedStringBuilder, com.commercetools.api.models.common.LocalizedString> builder) {
097        this.localizedMessage = builder.apply(com.commercetools.api.models.common.LocalizedStringBuilder.of());
098        return this;
099    }
100
101    /**
102     *  <p>User-defined localized description of the error.</p>
103     * @param localizedMessage value to be set
104     * @return Builder
105     */
106
107    public ExtensionUpdateActionsFailedErrorBuilder localizedMessage(
108            @Nullable final com.commercetools.api.models.common.LocalizedString localizedMessage) {
109        this.localizedMessage = localizedMessage;
110        return this;
111    }
112
113    /**
114     *  <p>Any information that should be returned to the API caller.</p>
115     * @param extensionExtraInfo value to be set
116     * @return Builder
117     */
118
119    public ExtensionUpdateActionsFailedErrorBuilder extensionExtraInfo(
120            @Nullable final java.lang.Object extensionExtraInfo) {
121        this.extensionExtraInfo = extensionExtraInfo;
122        return this;
123    }
124
125    /**
126     *  <p>Additional errors related to the API Extension.</p>
127     * @param extensionErrors value to be set
128     * @return Builder
129     */
130
131    public ExtensionUpdateActionsFailedErrorBuilder extensionErrors(
132            final com.commercetools.api.models.error.ExtensionError... extensionErrors) {
133        this.extensionErrors = new ArrayList<>(Arrays.asList(extensionErrors));
134        return this;
135    }
136
137    /**
138     *  <p>Additional errors related to the API Extension.</p>
139     * @param extensionErrors value to be set
140     * @return Builder
141     */
142
143    public ExtensionUpdateActionsFailedErrorBuilder extensionErrors(
144            final java.util.List<com.commercetools.api.models.error.ExtensionError> extensionErrors) {
145        this.extensionErrors = extensionErrors;
146        return this;
147    }
148
149    /**
150     *  <p>Additional errors related to the API Extension.</p>
151     * @param extensionErrors value to be set
152     * @return Builder
153     */
154
155    public ExtensionUpdateActionsFailedErrorBuilder plusExtensionErrors(
156            final com.commercetools.api.models.error.ExtensionError... extensionErrors) {
157        if (this.extensionErrors == null) {
158            this.extensionErrors = new ArrayList<>();
159        }
160        this.extensionErrors.addAll(Arrays.asList(extensionErrors));
161        return this;
162    }
163
164    /**
165     *  <p>Additional errors related to the API Extension.</p>
166     * @param builder function to build the extensionErrors value
167     * @return Builder
168     */
169
170    public ExtensionUpdateActionsFailedErrorBuilder plusExtensionErrors(
171            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionErrorBuilder> builder) {
172        if (this.extensionErrors == null) {
173            this.extensionErrors = new ArrayList<>();
174        }
175        this.extensionErrors.add(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()).build());
176        return this;
177    }
178
179    /**
180     *  <p>Additional errors related to the API Extension.</p>
181     * @param builder function to build the extensionErrors value
182     * @return Builder
183     */
184
185    public ExtensionUpdateActionsFailedErrorBuilder withExtensionErrors(
186            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionErrorBuilder> builder) {
187        this.extensionErrors = new ArrayList<>();
188        this.extensionErrors.add(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()).build());
189        return this;
190    }
191
192    /**
193     *  <p>Additional errors related to the API Extension.</p>
194     * @param builder function to build the extensionErrors value
195     * @return Builder
196     */
197
198    public ExtensionUpdateActionsFailedErrorBuilder addExtensionErrors(
199            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionError> builder) {
200        return plusExtensionErrors(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()));
201    }
202
203    /**
204     *  <p>Additional errors related to the API Extension.</p>
205     * @param builder function to build the extensionErrors value
206     * @return Builder
207     */
208
209    public ExtensionUpdateActionsFailedErrorBuilder setExtensionErrors(
210            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionError> builder) {
211        return extensionErrors(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()));
212    }
213
214    /**
215     *  <p><code>"The extension returned update actions that could not be executed."</code></p>
216     * @return message
217     */
218
219    public String getMessage() {
220        return this.message;
221    }
222
223    /**
224     *  <p>Error-specific additional fields.</p>
225     * @return pattern properties
226     */
227
228    public Map<String, java.lang.Object> getValues() {
229        return this.values;
230    }
231
232    /**
233     *  <p>User-defined localized description of the error.</p>
234     * @return localizedMessage
235     */
236
237    @Nullable
238    public com.commercetools.api.models.common.LocalizedString getLocalizedMessage() {
239        return this.localizedMessage;
240    }
241
242    /**
243     *  <p>Any information that should be returned to the API caller.</p>
244     * @return extensionExtraInfo
245     */
246
247    @Nullable
248    public java.lang.Object getExtensionExtraInfo() {
249        return this.extensionExtraInfo;
250    }
251
252    /**
253     *  <p>Additional errors related to the API Extension.</p>
254     * @return extensionErrors
255     */
256
257    public java.util.List<com.commercetools.api.models.error.ExtensionError> getExtensionErrors() {
258        return this.extensionErrors;
259    }
260
261    /**
262     * builds ExtensionUpdateActionsFailedError with checking for non-null required values
263     * @return ExtensionUpdateActionsFailedError
264     */
265    public ExtensionUpdateActionsFailedError build() {
266        Objects.requireNonNull(message, ExtensionUpdateActionsFailedError.class + ": message is missing");
267        Objects.requireNonNull(extensionErrors,
268            ExtensionUpdateActionsFailedError.class + ": extensionErrors is missing");
269        return new ExtensionUpdateActionsFailedErrorImpl(message, values, localizedMessage, extensionExtraInfo,
270            extensionErrors);
271    }
272
273    /**
274     * builds ExtensionUpdateActionsFailedError without checking for non-null required values
275     * @return ExtensionUpdateActionsFailedError
276     */
277    public ExtensionUpdateActionsFailedError buildUnchecked() {
278        return new ExtensionUpdateActionsFailedErrorImpl(message, values, localizedMessage, extensionExtraInfo,
279            extensionErrors);
280    }
281
282    /**
283     * factory method for an instance of ExtensionUpdateActionsFailedErrorBuilder
284     * @return builder
285     */
286    public static ExtensionUpdateActionsFailedErrorBuilder of() {
287        return new ExtensionUpdateActionsFailedErrorBuilder();
288    }
289
290    /**
291     * create builder for ExtensionUpdateActionsFailedError instance
292     * @param template instance with prefilled values for the builder
293     * @return builder
294     */
295    public static ExtensionUpdateActionsFailedErrorBuilder of(final ExtensionUpdateActionsFailedError template) {
296        ExtensionUpdateActionsFailedErrorBuilder builder = new ExtensionUpdateActionsFailedErrorBuilder();
297        builder.message = template.getMessage();
298        builder.values = template.values();
299        builder.localizedMessage = template.getLocalizedMessage();
300        builder.extensionExtraInfo = template.getExtensionExtraInfo();
301        builder.extensionErrors = template.getExtensionErrors();
302        return builder;
303    }
304
305}