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 * RemoveEnumValuesChangeBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     RemoveEnumValuesChange removeEnumValuesChange = RemoveEnumValuesChange.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 RemoveEnumValuesChangeBuilder implements Builder<RemoveEnumValuesChange> {
026
027    private String change;
028
029    private com.commercetools.history.models.change_value.EnumValue 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 RemoveEnumValuesChangeBuilder 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 RemoveEnumValuesChangeBuilder previousValue(
051            Function<com.commercetools.history.models.change_value.EnumValueBuilder, com.commercetools.history.models.change_value.EnumValueBuilder> builder) {
052        this.previousValue = builder.apply(com.commercetools.history.models.change_value.EnumValueBuilder.of()).build();
053        return this;
054    }
055
056    /**
057     *  <p>Value before the change.</p>
058     * @param builder function to build the previousValue value
059     * @return Builder
060     */
061
062    public RemoveEnumValuesChangeBuilder withPreviousValue(
063            Function<com.commercetools.history.models.change_value.EnumValueBuilder, com.commercetools.history.models.change_value.EnumValue> builder) {
064        this.previousValue = builder.apply(com.commercetools.history.models.change_value.EnumValueBuilder.of());
065        return this;
066    }
067
068    /**
069     *  <p>Value before the change.</p>
070     * @param previousValue value to be set
071     * @return Builder
072     */
073
074    public RemoveEnumValuesChangeBuilder previousValue(
075            final com.commercetools.history.models.change_value.EnumValue previousValue) {
076        this.previousValue = previousValue;
077        return this;
078    }
079
080    /**
081     *  <p>Name of the updated AttributeDefinition.</p>
082     * @param attributeName value to be set
083     * @return Builder
084     */
085
086    public RemoveEnumValuesChangeBuilder attributeName(final String attributeName) {
087        this.attributeName = attributeName;
088        return this;
089    }
090
091    /**
092     * value of change}
093     * @return change
094     */
095
096    public String getChange() {
097        return this.change;
098    }
099
100    /**
101     *  <p>Value before the change.</p>
102     * @return previousValue
103     */
104
105    public com.commercetools.history.models.change_value.EnumValue getPreviousValue() {
106        return this.previousValue;
107    }
108
109    /**
110     *  <p>Name of the updated AttributeDefinition.</p>
111     * @return attributeName
112     */
113
114    public String getAttributeName() {
115        return this.attributeName;
116    }
117
118    /**
119     * builds RemoveEnumValuesChange with checking for non-null required values
120     * @return RemoveEnumValuesChange
121     */
122    public RemoveEnumValuesChange build() {
123        Objects.requireNonNull(change, RemoveEnumValuesChange.class + ": change is missing");
124        Objects.requireNonNull(previousValue, RemoveEnumValuesChange.class + ": previousValue is missing");
125        Objects.requireNonNull(attributeName, RemoveEnumValuesChange.class + ": attributeName is missing");
126        return new RemoveEnumValuesChangeImpl(change, previousValue, attributeName);
127    }
128
129    /**
130     * builds RemoveEnumValuesChange without checking for non-null required values
131     * @return RemoveEnumValuesChange
132     */
133    public RemoveEnumValuesChange buildUnchecked() {
134        return new RemoveEnumValuesChangeImpl(change, previousValue, attributeName);
135    }
136
137    /**
138     * factory method for an instance of RemoveEnumValuesChangeBuilder
139     * @return builder
140     */
141    public static RemoveEnumValuesChangeBuilder of() {
142        return new RemoveEnumValuesChangeBuilder();
143    }
144
145    /**
146     * create builder for RemoveEnumValuesChange instance
147     * @param template instance with prefilled values for the builder
148     * @return builder
149     */
150    public static RemoveEnumValuesChangeBuilder of(final RemoveEnumValuesChange template) {
151        RemoveEnumValuesChangeBuilder builder = new RemoveEnumValuesChangeBuilder();
152        builder.change = template.getChange();
153        builder.previousValue = template.getPreviousValue();
154        builder.attributeName = template.getAttributeName();
155        return builder;
156    }
157
158}