001
002package com.commercetools.api.models.error;
003
004import java.util.*;
005import java.util.function.Function;
006
007import io.vrap.rmf.base.client.Builder;
008import io.vrap.rmf.base.client.utils.Generated;
009
010/**
011 * GraphQLExtensionPredicateEvaluationFailedErrorBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     GraphQLExtensionPredicateEvaluationFailedError graphQLExtensionPredicateEvaluationFailedError = GraphQLExtensionPredicateEvaluationFailedError.builder()
017 *             .errorByExtension(errorByExtensionBuilder -> errorByExtensionBuilder)
018 *             .build()
019 * </code></pre>
020 * </div>
021 */
022@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
023public class GraphQLExtensionPredicateEvaluationFailedErrorBuilder
024        implements Builder<GraphQLExtensionPredicateEvaluationFailedError> {
025
026    private Map<String, java.lang.Object> values = new HashMap<>();
027
028    private com.commercetools.api.models.error.ErrorByExtension errorByExtension;
029
030    /**
031     *  <p>Error-specific additional fields.</p>
032     * @param values properties to be set
033     * @return Builder
034     */
035
036    public GraphQLExtensionPredicateEvaluationFailedErrorBuilder values(final Map<String, java.lang.Object> values) {
037        this.values = values;
038        return this;
039    }
040
041    /**
042     *  <p>Error-specific additional fields.</p>
043     * @param key property name
044     * @param value property value
045     * @return Builder
046     */
047
048    public GraphQLExtensionPredicateEvaluationFailedErrorBuilder addValue(final String key,
049            final java.lang.Object value) {
050        if (this.values == null) {
051            values = new HashMap<>();
052        }
053        values.put(key, value);
054        return this;
055    }
056
057    /**
058     *  <p>Details about the API Extension that was involved in the error.</p>
059     * @param builder function to build the errorByExtension value
060     * @return Builder
061     */
062
063    public GraphQLExtensionPredicateEvaluationFailedErrorBuilder errorByExtension(
064            Function<com.commercetools.api.models.error.ErrorByExtensionBuilder, com.commercetools.api.models.error.ErrorByExtensionBuilder> builder) {
065        this.errorByExtension = builder.apply(com.commercetools.api.models.error.ErrorByExtensionBuilder.of()).build();
066        return this;
067    }
068
069    /**
070     *  <p>Details about the API Extension that was involved in the error.</p>
071     * @param builder function to build the errorByExtension value
072     * @return Builder
073     */
074
075    public GraphQLExtensionPredicateEvaluationFailedErrorBuilder withErrorByExtension(
076            Function<com.commercetools.api.models.error.ErrorByExtensionBuilder, com.commercetools.api.models.error.ErrorByExtension> builder) {
077        this.errorByExtension = builder.apply(com.commercetools.api.models.error.ErrorByExtensionBuilder.of());
078        return this;
079    }
080
081    /**
082     *  <p>Details about the API Extension that was involved in the error.</p>
083     * @param errorByExtension value to be set
084     * @return Builder
085     */
086
087    public GraphQLExtensionPredicateEvaluationFailedErrorBuilder errorByExtension(
088            final com.commercetools.api.models.error.ErrorByExtension errorByExtension) {
089        this.errorByExtension = errorByExtension;
090        return this;
091    }
092
093    /**
094     *  <p>Error-specific additional fields.</p>
095     * @return pattern properties
096     */
097
098    public Map<String, java.lang.Object> getValues() {
099        return this.values;
100    }
101
102    /**
103     *  <p>Details about the API Extension that was involved in the error.</p>
104     * @return errorByExtension
105     */
106
107    public com.commercetools.api.models.error.ErrorByExtension getErrorByExtension() {
108        return this.errorByExtension;
109    }
110
111    /**
112     * builds GraphQLExtensionPredicateEvaluationFailedError with checking for non-null required values
113     * @return GraphQLExtensionPredicateEvaluationFailedError
114     */
115    public GraphQLExtensionPredicateEvaluationFailedError build() {
116        Objects.requireNonNull(errorByExtension,
117            GraphQLExtensionPredicateEvaluationFailedError.class + ": errorByExtension is missing");
118        return new GraphQLExtensionPredicateEvaluationFailedErrorImpl(values, errorByExtension);
119    }
120
121    /**
122     * builds GraphQLExtensionPredicateEvaluationFailedError without checking for non-null required values
123     * @return GraphQLExtensionPredicateEvaluationFailedError
124     */
125    public GraphQLExtensionPredicateEvaluationFailedError buildUnchecked() {
126        return new GraphQLExtensionPredicateEvaluationFailedErrorImpl(values, errorByExtension);
127    }
128
129    /**
130     * factory method for an instance of GraphQLExtensionPredicateEvaluationFailedErrorBuilder
131     * @return builder
132     */
133    public static GraphQLExtensionPredicateEvaluationFailedErrorBuilder of() {
134        return new GraphQLExtensionPredicateEvaluationFailedErrorBuilder();
135    }
136
137    /**
138     * create builder for GraphQLExtensionPredicateEvaluationFailedError instance
139     * @param template instance with prefilled values for the builder
140     * @return builder
141     */
142    public static GraphQLExtensionPredicateEvaluationFailedErrorBuilder of(
143            final GraphQLExtensionPredicateEvaluationFailedError template) {
144        GraphQLExtensionPredicateEvaluationFailedErrorBuilder builder = new GraphQLExtensionPredicateEvaluationFailedErrorBuilder();
145        builder.values = template.values();
146        builder.errorByExtension = template.getErrorByExtension();
147        return builder;
148    }
149
150}