001
002package com.commercetools.history.models.change;
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 * RemoveLocalizedEnumValuesChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     RemoveLocalizedEnumValuesChange removeLocalizedEnumValuesChange = RemoveLocalizedEnumValuesChange.builder()
017 *             .change("{change}")
018 *             .previousValue(previousValueBuilder -> previousValueBuilder)
019 *             .attributeName("{attributeName}")
020 *             .build()
021 * </code></pre>
022 * </div>
023 */
024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
025public class RemoveLocalizedEnumValuesChangeBuilder implements Builder<RemoveLocalizedEnumValuesChange> {
026
027    private String change;
028
029    private com.commercetools.history.models.change_value.LocalizedEnumValue previousValue;
030
031    private String attributeName;
032
033    /**
034     * set the value to the change
035     * @param change value to be set
036     * @return Builder
037     */
038
039    public RemoveLocalizedEnumValuesChangeBuilder change(final String change) {
040        this.change = change;
041        return this;
042    }
043
044    /**
045     *  <p>Value before the change.</p>
046     * @param builder function to build the previousValue value
047     * @return Builder
048     */
049
050    public RemoveLocalizedEnumValuesChangeBuilder previousValue(
051            Function<com.commercetools.history.models.change_value.LocalizedEnumValueBuilder, com.commercetools.history.models.change_value.LocalizedEnumValueBuilder> builder) {
052        this.previousValue = builder.apply(com.commercetools.history.models.change_value.LocalizedEnumValueBuilder.of())
053                .build();
054        return this;
055    }
056
057    /**
058     *  <p>Value before the change.</p>
059     * @param builder function to build the previousValue value
060     * @return Builder
061     */
062
063    public RemoveLocalizedEnumValuesChangeBuilder withPreviousValue(
064            Function<com.commercetools.history.models.change_value.LocalizedEnumValueBuilder, com.commercetools.history.models.change_value.LocalizedEnumValue> builder) {
065        this.previousValue = builder
066                .apply(com.commercetools.history.models.change_value.LocalizedEnumValueBuilder.of());
067        return this;
068    }
069
070    /**
071     *  <p>Value before the change.</p>
072     * @param previousValue value to be set
073     * @return Builder
074     */
075
076    public RemoveLocalizedEnumValuesChangeBuilder previousValue(
077            final com.commercetools.history.models.change_value.LocalizedEnumValue previousValue) {
078        this.previousValue = previousValue;
079        return this;
080    }
081
082    /**
083     *  <p>Name of the updated AttributeDefinition.</p>
084     * @param attributeName value to be set
085     * @return Builder
086     */
087
088    public RemoveLocalizedEnumValuesChangeBuilder attributeName(final String attributeName) {
089        this.attributeName = attributeName;
090        return this;
091    }
092
093    /**
094     * value of change}
095     * @return change
096     */
097
098    public String getChange() {
099        return this.change;
100    }
101
102    /**
103     *  <p>Value before the change.</p>
104     * @return previousValue
105     */
106
107    public com.commercetools.history.models.change_value.LocalizedEnumValue getPreviousValue() {
108        return this.previousValue;
109    }
110
111    /**
112     *  <p>Name of the updated AttributeDefinition.</p>
113     * @return attributeName
114     */
115
116    public String getAttributeName() {
117        return this.attributeName;
118    }
119
120    /**
121     * builds RemoveLocalizedEnumValuesChange with checking for non-null required values
122     * @return RemoveLocalizedEnumValuesChange
123     */
124    public RemoveLocalizedEnumValuesChange build() {
125        Objects.requireNonNull(change, RemoveLocalizedEnumValuesChange.class + ": change is missing");
126        Objects.requireNonNull(previousValue, RemoveLocalizedEnumValuesChange.class + ": previousValue is missing");
127        Objects.requireNonNull(attributeName, RemoveLocalizedEnumValuesChange.class + ": attributeName is missing");
128        return new RemoveLocalizedEnumValuesChangeImpl(change, previousValue, attributeName);
129    }
130
131    /**
132     * builds RemoveLocalizedEnumValuesChange without checking for non-null required values
133     * @return RemoveLocalizedEnumValuesChange
134     */
135    public RemoveLocalizedEnumValuesChange buildUnchecked() {
136        return new RemoveLocalizedEnumValuesChangeImpl(change, previousValue, attributeName);
137    }
138
139    /**
140     * factory method for an instance of RemoveLocalizedEnumValuesChangeBuilder
141     * @return builder
142     */
143    public static RemoveLocalizedEnumValuesChangeBuilder of() {
144        return new RemoveLocalizedEnumValuesChangeBuilder();
145    }
146
147    /**
148     * create builder for RemoveLocalizedEnumValuesChange instance
149     * @param template instance with prefilled values for the builder
150     * @return builder
151     */
152    public static RemoveLocalizedEnumValuesChangeBuilder of(final RemoveLocalizedEnumValuesChange template) {
153        RemoveLocalizedEnumValuesChangeBuilder builder = new RemoveLocalizedEnumValuesChangeBuilder();
154        builder.change = template.getChange();
155        builder.previousValue = template.getPreviousValue();
156        builder.attributeName = template.getAttributeName();
157        return builder;
158    }
159
160}