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 * GraphQLExtensionBadResponseErrorBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     GraphQLExtensionBadResponseError graphQLExtensionBadResponseError = GraphQLExtensionBadResponseError.builder()
019 *             .plusExtensionErrors(extensionErrorsBuilder -> extensionErrorsBuilder)
020 *             .extensionId("{extensionId}")
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 GraphQLExtensionBadResponseErrorBuilder implements Builder<GraphQLExtensionBadResponseError> {
027
028    private Map<String, java.lang.Object> values = new HashMap<>();
029
030    @Nullable
031    private com.commercetools.api.models.common.LocalizedString localizedMessage;
032
033    @Nullable
034    private java.lang.Object extensionExtraInfo;
035
036    private java.util.List<com.commercetools.api.models.error.ExtensionError> extensionErrors;
037
038    @Nullable
039    private String extensionBody;
040
041    @Nullable
042    private Integer extensionStatusCode;
043
044    private String extensionId;
045
046    @Nullable
047    private String extensionKey;
048
049    /**
050     *  <p>Error-specific additional fields.</p>
051     * @param values properties to be set
052     * @return Builder
053     */
054
055    public GraphQLExtensionBadResponseErrorBuilder values(final Map<String, java.lang.Object> values) {
056        this.values = values;
057        return this;
058    }
059
060    /**
061     *  <p>Error-specific additional fields.</p>
062     * @param key property name
063     * @param value property value
064     * @return Builder
065     */
066
067    public GraphQLExtensionBadResponseErrorBuilder addValue(final String key, final java.lang.Object value) {
068        if (this.values == null) {
069            values = new HashMap<>();
070        }
071        values.put(key, value);
072        return this;
073    }
074
075    /**
076     *  <p>User-defined localized description of the error.</p>
077     * @param builder function to build the localizedMessage value
078     * @return Builder
079     */
080
081    public GraphQLExtensionBadResponseErrorBuilder localizedMessage(
082            Function<com.commercetools.api.models.common.LocalizedStringBuilder, com.commercetools.api.models.common.LocalizedStringBuilder> builder) {
083        this.localizedMessage = builder.apply(com.commercetools.api.models.common.LocalizedStringBuilder.of()).build();
084        return this;
085    }
086
087    /**
088     *  <p>User-defined localized description of the error.</p>
089     * @param builder function to build the localizedMessage value
090     * @return Builder
091     */
092
093    public GraphQLExtensionBadResponseErrorBuilder withLocalizedMessage(
094            Function<com.commercetools.api.models.common.LocalizedStringBuilder, com.commercetools.api.models.common.LocalizedString> builder) {
095        this.localizedMessage = builder.apply(com.commercetools.api.models.common.LocalizedStringBuilder.of());
096        return this;
097    }
098
099    /**
100     *  <p>User-defined localized description of the error.</p>
101     * @param localizedMessage value to be set
102     * @return Builder
103     */
104
105    public GraphQLExtensionBadResponseErrorBuilder localizedMessage(
106            @Nullable final com.commercetools.api.models.common.LocalizedString localizedMessage) {
107        this.localizedMessage = localizedMessage;
108        return this;
109    }
110
111    /**
112     *  <p>Any information that should be returned to the API caller.</p>
113     * @param extensionExtraInfo value to be set
114     * @return Builder
115     */
116
117    public GraphQLExtensionBadResponseErrorBuilder extensionExtraInfo(
118            @Nullable final java.lang.Object extensionExtraInfo) {
119        this.extensionExtraInfo = extensionExtraInfo;
120        return this;
121    }
122
123    /**
124     *  <p>Additional errors related to the API Extension.</p>
125     * @param extensionErrors value to be set
126     * @return Builder
127     */
128
129    public GraphQLExtensionBadResponseErrorBuilder extensionErrors(
130            final com.commercetools.api.models.error.ExtensionError... extensionErrors) {
131        this.extensionErrors = new ArrayList<>(Arrays.asList(extensionErrors));
132        return this;
133    }
134
135    /**
136     *  <p>Additional errors related to the API Extension.</p>
137     * @param extensionErrors value to be set
138     * @return Builder
139     */
140
141    public GraphQLExtensionBadResponseErrorBuilder extensionErrors(
142            final java.util.List<com.commercetools.api.models.error.ExtensionError> extensionErrors) {
143        this.extensionErrors = extensionErrors;
144        return this;
145    }
146
147    /**
148     *  <p>Additional errors related to the API Extension.</p>
149     * @param extensionErrors value to be set
150     * @return Builder
151     */
152
153    public GraphQLExtensionBadResponseErrorBuilder plusExtensionErrors(
154            final com.commercetools.api.models.error.ExtensionError... extensionErrors) {
155        if (this.extensionErrors == null) {
156            this.extensionErrors = new ArrayList<>();
157        }
158        this.extensionErrors.addAll(Arrays.asList(extensionErrors));
159        return this;
160    }
161
162    /**
163     *  <p>Additional errors related to the API Extension.</p>
164     * @param builder function to build the extensionErrors value
165     * @return Builder
166     */
167
168    public GraphQLExtensionBadResponseErrorBuilder plusExtensionErrors(
169            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionErrorBuilder> builder) {
170        if (this.extensionErrors == null) {
171            this.extensionErrors = new ArrayList<>();
172        }
173        this.extensionErrors.add(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()).build());
174        return this;
175    }
176
177    /**
178     *  <p>Additional errors related to the API Extension.</p>
179     * @param builder function to build the extensionErrors value
180     * @return Builder
181     */
182
183    public GraphQLExtensionBadResponseErrorBuilder withExtensionErrors(
184            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionErrorBuilder> builder) {
185        this.extensionErrors = new ArrayList<>();
186        this.extensionErrors.add(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()).build());
187        return this;
188    }
189
190    /**
191     *  <p>Additional errors related to the API Extension.</p>
192     * @param builder function to build the extensionErrors value
193     * @return Builder
194     */
195
196    public GraphQLExtensionBadResponseErrorBuilder addExtensionErrors(
197            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionError> builder) {
198        return plusExtensionErrors(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()));
199    }
200
201    /**
202     *  <p>Additional errors related to the API Extension.</p>
203     * @param builder function to build the extensionErrors value
204     * @return Builder
205     */
206
207    public GraphQLExtensionBadResponseErrorBuilder setExtensionErrors(
208            Function<com.commercetools.api.models.error.ExtensionErrorBuilder, com.commercetools.api.models.error.ExtensionError> builder) {
209        return extensionErrors(builder.apply(com.commercetools.api.models.error.ExtensionErrorBuilder.of()));
210    }
211
212    /**
213     *  <p>The response body returned by the Extension.</p>
214     * @param extensionBody value to be set
215     * @return Builder
216     */
217
218    public GraphQLExtensionBadResponseErrorBuilder extensionBody(@Nullable final String extensionBody) {
219        this.extensionBody = extensionBody;
220        return this;
221    }
222
223    /**
224     *  <p>Http status code returned by the Extension.</p>
225     * @param extensionStatusCode value to be set
226     * @return Builder
227     */
228
229    public GraphQLExtensionBadResponseErrorBuilder extensionStatusCode(@Nullable final Integer extensionStatusCode) {
230        this.extensionStatusCode = extensionStatusCode;
231        return this;
232    }
233
234    /**
235     *  <p>Unique identifier of the Extension.</p>
236     * @param extensionId value to be set
237     * @return Builder
238     */
239
240    public GraphQLExtensionBadResponseErrorBuilder extensionId(final String extensionId) {
241        this.extensionId = extensionId;
242        return this;
243    }
244
245    /**
246     *  <p>User-defined unique identifier of the Extension.</p>
247     * @param extensionKey value to be set
248     * @return Builder
249     */
250
251    public GraphQLExtensionBadResponseErrorBuilder extensionKey(@Nullable final String extensionKey) {
252        this.extensionKey = extensionKey;
253        return this;
254    }
255
256    /**
257     *  <p>Error-specific additional fields.</p>
258     * @return pattern properties
259     */
260
261    public Map<String, java.lang.Object> getValues() {
262        return this.values;
263    }
264
265    /**
266     *  <p>User-defined localized description of the error.</p>
267     * @return localizedMessage
268     */
269
270    @Nullable
271    public com.commercetools.api.models.common.LocalizedString getLocalizedMessage() {
272        return this.localizedMessage;
273    }
274
275    /**
276     *  <p>Any information that should be returned to the API caller.</p>
277     * @return extensionExtraInfo
278     */
279
280    @Nullable
281    public java.lang.Object getExtensionExtraInfo() {
282        return this.extensionExtraInfo;
283    }
284
285    /**
286     *  <p>Additional errors related to the API Extension.</p>
287     * @return extensionErrors
288     */
289
290    public java.util.List<com.commercetools.api.models.error.ExtensionError> getExtensionErrors() {
291        return this.extensionErrors;
292    }
293
294    /**
295     *  <p>The response body returned by the Extension.</p>
296     * @return extensionBody
297     */
298
299    @Nullable
300    public String getExtensionBody() {
301        return this.extensionBody;
302    }
303
304    /**
305     *  <p>Http status code returned by the Extension.</p>
306     * @return extensionStatusCode
307     */
308
309    @Nullable
310    public Integer getExtensionStatusCode() {
311        return this.extensionStatusCode;
312    }
313
314    /**
315     *  <p>Unique identifier of the Extension.</p>
316     * @return extensionId
317     */
318
319    public String getExtensionId() {
320        return this.extensionId;
321    }
322
323    /**
324     *  <p>User-defined unique identifier of the Extension.</p>
325     * @return extensionKey
326     */
327
328    @Nullable
329    public String getExtensionKey() {
330        return this.extensionKey;
331    }
332
333    /**
334     * builds GraphQLExtensionBadResponseError with checking for non-null required values
335     * @return GraphQLExtensionBadResponseError
336     */
337    public GraphQLExtensionBadResponseError build() {
338        Objects.requireNonNull(extensionErrors,
339            GraphQLExtensionBadResponseError.class + ": extensionErrors is missing");
340        Objects.requireNonNull(extensionId, GraphQLExtensionBadResponseError.class + ": extensionId is missing");
341        return new GraphQLExtensionBadResponseErrorImpl(values, localizedMessage, extensionExtraInfo, extensionErrors,
342            extensionBody, extensionStatusCode, extensionId, extensionKey);
343    }
344
345    /**
346     * builds GraphQLExtensionBadResponseError without checking for non-null required values
347     * @return GraphQLExtensionBadResponseError
348     */
349    public GraphQLExtensionBadResponseError buildUnchecked() {
350        return new GraphQLExtensionBadResponseErrorImpl(values, localizedMessage, extensionExtraInfo, extensionErrors,
351            extensionBody, extensionStatusCode, extensionId, extensionKey);
352    }
353
354    /**
355     * factory method for an instance of GraphQLExtensionBadResponseErrorBuilder
356     * @return builder
357     */
358    public static GraphQLExtensionBadResponseErrorBuilder of() {
359        return new GraphQLExtensionBadResponseErrorBuilder();
360    }
361
362    /**
363     * create builder for GraphQLExtensionBadResponseError instance
364     * @param template instance with prefilled values for the builder
365     * @return builder
366     */
367    public static GraphQLExtensionBadResponseErrorBuilder of(final GraphQLExtensionBadResponseError template) {
368        GraphQLExtensionBadResponseErrorBuilder builder = new GraphQLExtensionBadResponseErrorBuilder();
369        builder.values = template.values();
370        builder.localizedMessage = template.getLocalizedMessage();
371        builder.extensionExtraInfo = template.getExtensionExtraInfo();
372        builder.extensionErrors = template.getExtensionErrors();
373        builder.extensionBody = template.getExtensionBody();
374        builder.extensionStatusCode = template.getExtensionStatusCode();
375        builder.extensionId = template.getExtensionId();
376        builder.extensionKey = template.getExtensionKey();
377        return builder;
378    }
379
380}