001
002package com.commercetools.importapi.models.customfields;
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 * LocalizedStringSetFieldBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     LocalizedStringSetField localizedStringSetField = LocalizedStringSetField.builder()
017 *             .plusValue(valueBuilder -> valueBuilder)
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 LocalizedStringSetFieldBuilder implements Builder<LocalizedStringSetField> {
024
025    private java.util.List<com.commercetools.importapi.models.common.LocalizedString> value;
026
027    /**
028     * set values to the value
029     * @param value value to be set
030     * @return Builder
031     */
032
033    public LocalizedStringSetFieldBuilder value(
034            final com.commercetools.importapi.models.common.LocalizedString... value) {
035        this.value = new ArrayList<>(Arrays.asList(value));
036        return this;
037    }
038
039    /**
040     * set value to the value
041     * @param value value to be set
042     * @return Builder
043     */
044
045    public LocalizedStringSetFieldBuilder value(
046            final java.util.List<com.commercetools.importapi.models.common.LocalizedString> value) {
047        this.value = value;
048        return this;
049    }
050
051    /**
052     * add values to the value
053     * @param value value to be set
054     * @return Builder
055     */
056
057    public LocalizedStringSetFieldBuilder plusValue(
058            final com.commercetools.importapi.models.common.LocalizedString... value) {
059        if (this.value == null) {
060            this.value = new ArrayList<>();
061        }
062        this.value.addAll(Arrays.asList(value));
063        return this;
064    }
065
066    /**
067     * add the value to the value using the builder function
068     * @param builder function to build the value value
069     * @return Builder
070     */
071
072    public LocalizedStringSetFieldBuilder plusValue(
073            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedStringBuilder> builder) {
074        if (this.value == null) {
075            this.value = new ArrayList<>();
076        }
077        this.value.add(builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of()).build());
078        return this;
079    }
080
081    /**
082     * set the value to the value using the builder function
083     * @param builder function to build the value value
084     * @return Builder
085     */
086
087    public LocalizedStringSetFieldBuilder withValue(
088            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedStringBuilder> builder) {
089        this.value = new ArrayList<>();
090        this.value.add(builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of()).build());
091        return this;
092    }
093
094    /**
095     * add the value to the value using the builder function
096     * @param builder function to build the value value
097     * @return Builder
098     */
099
100    public LocalizedStringSetFieldBuilder addValue(
101            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedString> builder) {
102        return plusValue(builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of()));
103    }
104
105    /**
106     * set the value to the value using the builder function
107     * @param builder function to build the value value
108     * @return Builder
109     */
110
111    public LocalizedStringSetFieldBuilder setValue(
112            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedString> builder) {
113        return value(builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of()));
114    }
115
116    /**
117     * value of value}
118     * @return value
119     */
120
121    public java.util.List<com.commercetools.importapi.models.common.LocalizedString> getValue() {
122        return this.value;
123    }
124
125    /**
126     * builds LocalizedStringSetField with checking for non-null required values
127     * @return LocalizedStringSetField
128     */
129    public LocalizedStringSetField build() {
130        Objects.requireNonNull(value, LocalizedStringSetField.class + ": value is missing");
131        return new LocalizedStringSetFieldImpl(value);
132    }
133
134    /**
135     * builds LocalizedStringSetField without checking for non-null required values
136     * @return LocalizedStringSetField
137     */
138    public LocalizedStringSetField buildUnchecked() {
139        return new LocalizedStringSetFieldImpl(value);
140    }
141
142    /**
143     * factory method for an instance of LocalizedStringSetFieldBuilder
144     * @return builder
145     */
146    public static LocalizedStringSetFieldBuilder of() {
147        return new LocalizedStringSetFieldBuilder();
148    }
149
150    /**
151     * create builder for LocalizedStringSetField instance
152     * @param template instance with prefilled values for the builder
153     * @return builder
154     */
155    public static LocalizedStringSetFieldBuilder of(final LocalizedStringSetField template) {
156        LocalizedStringSetFieldBuilder builder = new LocalizedStringSetFieldBuilder();
157        builder.value = template.getValue();
158        return builder;
159    }
160
161}