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 * GraphQLEditPreviewFailedErrorBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     GraphQLEditPreviewFailedError graphQLEditPreviewFailedError = GraphQLEditPreviewFailedError.builder()
017 *             .result(resultBuilder -> resultBuilder)
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 GraphQLEditPreviewFailedErrorBuilder implements Builder<GraphQLEditPreviewFailedError> {
024
025    private Map<String, java.lang.Object> values = new HashMap<>();
026
027    private com.commercetools.api.models.order_edit.OrderEditPreviewFailure result;
028
029    /**
030     *  <p>Error-specific additional fields.</p>
031     * @param values properties to be set
032     * @return Builder
033     */
034
035    public GraphQLEditPreviewFailedErrorBuilder values(final Map<String, java.lang.Object> values) {
036        this.values = values;
037        return this;
038    }
039
040    /**
041     *  <p>Error-specific additional fields.</p>
042     * @param key property name
043     * @param value property value
044     * @return Builder
045     */
046
047    public GraphQLEditPreviewFailedErrorBuilder addValue(final String key, final java.lang.Object value) {
048        if (this.values == null) {
049            values = new HashMap<>();
050        }
051        values.put(key, value);
052        return this;
053    }
054
055    /**
056     *  <p>State of the OrderEdit where the <code>stagedActions</code> cannot be applied to the Order.</p>
057     * @param builder function to build the result value
058     * @return Builder
059     */
060
061    public GraphQLEditPreviewFailedErrorBuilder result(
062            Function<com.commercetools.api.models.order_edit.OrderEditPreviewFailureBuilder, com.commercetools.api.models.order_edit.OrderEditPreviewFailureBuilder> builder) {
063        this.result = builder.apply(com.commercetools.api.models.order_edit.OrderEditPreviewFailureBuilder.of())
064                .build();
065        return this;
066    }
067
068    /**
069     *  <p>State of the OrderEdit where the <code>stagedActions</code> cannot be applied to the Order.</p>
070     * @param builder function to build the result value
071     * @return Builder
072     */
073
074    public GraphQLEditPreviewFailedErrorBuilder withResult(
075            Function<com.commercetools.api.models.order_edit.OrderEditPreviewFailureBuilder, com.commercetools.api.models.order_edit.OrderEditPreviewFailure> builder) {
076        this.result = builder.apply(com.commercetools.api.models.order_edit.OrderEditPreviewFailureBuilder.of());
077        return this;
078    }
079
080    /**
081     *  <p>State of the OrderEdit where the <code>stagedActions</code> cannot be applied to the Order.</p>
082     * @param result value to be set
083     * @return Builder
084     */
085
086    public GraphQLEditPreviewFailedErrorBuilder result(
087            final com.commercetools.api.models.order_edit.OrderEditPreviewFailure result) {
088        this.result = result;
089        return this;
090    }
091
092    /**
093     *  <p>Error-specific additional fields.</p>
094     * @return pattern properties
095     */
096
097    public Map<String, java.lang.Object> getValues() {
098        return this.values;
099    }
100
101    /**
102     *  <p>State of the OrderEdit where the <code>stagedActions</code> cannot be applied to the Order.</p>
103     * @return result
104     */
105
106    public com.commercetools.api.models.order_edit.OrderEditPreviewFailure getResult() {
107        return this.result;
108    }
109
110    /**
111     * builds GraphQLEditPreviewFailedError with checking for non-null required values
112     * @return GraphQLEditPreviewFailedError
113     */
114    public GraphQLEditPreviewFailedError build() {
115        Objects.requireNonNull(result, GraphQLEditPreviewFailedError.class + ": result is missing");
116        return new GraphQLEditPreviewFailedErrorImpl(values, result);
117    }
118
119    /**
120     * builds GraphQLEditPreviewFailedError without checking for non-null required values
121     * @return GraphQLEditPreviewFailedError
122     */
123    public GraphQLEditPreviewFailedError buildUnchecked() {
124        return new GraphQLEditPreviewFailedErrorImpl(values, result);
125    }
126
127    /**
128     * factory method for an instance of GraphQLEditPreviewFailedErrorBuilder
129     * @return builder
130     */
131    public static GraphQLEditPreviewFailedErrorBuilder of() {
132        return new GraphQLEditPreviewFailedErrorBuilder();
133    }
134
135    /**
136     * create builder for GraphQLEditPreviewFailedError instance
137     * @param template instance with prefilled values for the builder
138     * @return builder
139     */
140    public static GraphQLEditPreviewFailedErrorBuilder of(final GraphQLEditPreviewFailedError template) {
141        GraphQLEditPreviewFailedErrorBuilder builder = new GraphQLEditPreviewFailedErrorBuilder();
142        builder.values = template.values();
143        builder.result = template.getResult();
144        return builder;
145    }
146
147}