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 * ExtensionPredicateEvaluationFailedErrorBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     ExtensionPredicateEvaluationFailedError extensionPredicateEvaluationFailedError = ExtensionPredicateEvaluationFailedError.builder()
017 *             .message("{message}")
018 *             .errorByExtension(errorByExtensionBuilder -> errorByExtensionBuilder)
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 ExtensionPredicateEvaluationFailedErrorBuilder
025        implements Builder<ExtensionPredicateEvaluationFailedError> {
026
027    private String message;
028
029    private Map<String, java.lang.Object> values = new HashMap<>();
030
031    private com.commercetools.api.models.error.ErrorByExtension errorByExtension;
032
033    /**
034     *  <p><code>"The compared field $fieldName is not present."</code></p>
035     * @param message value to be set
036     * @return Builder
037     */
038
039    public ExtensionPredicateEvaluationFailedErrorBuilder message(final String message) {
040        this.message = message;
041        return this;
042    }
043
044    /**
045     *  <p>Error-specific additional fields.</p>
046     * @param values properties to be set
047     * @return Builder
048     */
049
050    public ExtensionPredicateEvaluationFailedErrorBuilder values(final Map<String, java.lang.Object> values) {
051        this.values = values;
052        return this;
053    }
054
055    /**
056     *  <p>Error-specific additional fields.</p>
057     * @param key property name
058     * @param value property value
059     * @return Builder
060     */
061
062    public ExtensionPredicateEvaluationFailedErrorBuilder addValue(final String key, final java.lang.Object value) {
063        if (this.values == null) {
064            values = new HashMap<>();
065        }
066        values.put(key, value);
067        return this;
068    }
069
070    /**
071     *  <p>Details about the API Extension that was involved in the error.</p>
072     * @param builder function to build the errorByExtension value
073     * @return Builder
074     */
075
076    public ExtensionPredicateEvaluationFailedErrorBuilder errorByExtension(
077            Function<com.commercetools.api.models.error.ErrorByExtensionBuilder, com.commercetools.api.models.error.ErrorByExtensionBuilder> builder) {
078        this.errorByExtension = builder.apply(com.commercetools.api.models.error.ErrorByExtensionBuilder.of()).build();
079        return this;
080    }
081
082    /**
083     *  <p>Details about the API Extension that was involved in the error.</p>
084     * @param builder function to build the errorByExtension value
085     * @return Builder
086     */
087
088    public ExtensionPredicateEvaluationFailedErrorBuilder withErrorByExtension(
089            Function<com.commercetools.api.models.error.ErrorByExtensionBuilder, com.commercetools.api.models.error.ErrorByExtension> builder) {
090        this.errorByExtension = builder.apply(com.commercetools.api.models.error.ErrorByExtensionBuilder.of());
091        return this;
092    }
093
094    /**
095     *  <p>Details about the API Extension that was involved in the error.</p>
096     * @param errorByExtension value to be set
097     * @return Builder
098     */
099
100    public ExtensionPredicateEvaluationFailedErrorBuilder errorByExtension(
101            final com.commercetools.api.models.error.ErrorByExtension errorByExtension) {
102        this.errorByExtension = errorByExtension;
103        return this;
104    }
105
106    /**
107     *  <p><code>"The compared field $fieldName is not present."</code></p>
108     * @return message
109     */
110
111    public String getMessage() {
112        return this.message;
113    }
114
115    /**
116     *  <p>Error-specific additional fields.</p>
117     * @return pattern properties
118     */
119
120    public Map<String, java.lang.Object> getValues() {
121        return this.values;
122    }
123
124    /**
125     *  <p>Details about the API Extension that was involved in the error.</p>
126     * @return errorByExtension
127     */
128
129    public com.commercetools.api.models.error.ErrorByExtension getErrorByExtension() {
130        return this.errorByExtension;
131    }
132
133    /**
134     * builds ExtensionPredicateEvaluationFailedError with checking for non-null required values
135     * @return ExtensionPredicateEvaluationFailedError
136     */
137    public ExtensionPredicateEvaluationFailedError build() {
138        Objects.requireNonNull(message, ExtensionPredicateEvaluationFailedError.class + ": message is missing");
139        Objects.requireNonNull(errorByExtension,
140            ExtensionPredicateEvaluationFailedError.class + ": errorByExtension is missing");
141        return new ExtensionPredicateEvaluationFailedErrorImpl(message, values, errorByExtension);
142    }
143
144    /**
145     * builds ExtensionPredicateEvaluationFailedError without checking for non-null required values
146     * @return ExtensionPredicateEvaluationFailedError
147     */
148    public ExtensionPredicateEvaluationFailedError buildUnchecked() {
149        return new ExtensionPredicateEvaluationFailedErrorImpl(message, values, errorByExtension);
150    }
151
152    /**
153     * factory method for an instance of ExtensionPredicateEvaluationFailedErrorBuilder
154     * @return builder
155     */
156    public static ExtensionPredicateEvaluationFailedErrorBuilder of() {
157        return new ExtensionPredicateEvaluationFailedErrorBuilder();
158    }
159
160    /**
161     * create builder for ExtensionPredicateEvaluationFailedError instance
162     * @param template instance with prefilled values for the builder
163     * @return builder
164     */
165    public static ExtensionPredicateEvaluationFailedErrorBuilder of(
166            final ExtensionPredicateEvaluationFailedError template) {
167        ExtensionPredicateEvaluationFailedErrorBuilder builder = new ExtensionPredicateEvaluationFailedErrorBuilder();
168        builder.message = template.getMessage();
169        builder.values = template.values();
170        builder.errorByExtension = template.getErrorByExtension();
171        return builder;
172    }
173
174}