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 * LocalizedStringFieldBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     LocalizedStringField localizedStringField = LocalizedStringField.builder()
017 *             .value(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 LocalizedStringFieldBuilder implements Builder<LocalizedStringField> {
024
025    private com.commercetools.importapi.models.common.LocalizedString value;
026
027    /**
028     *  <p>A localized string is a JSON object where the keys are of IETF language tag, and the values the corresponding strings used for that language.</p>
029     *  <pre><code>{
030     *    "de": "Hundefutter",
031     *    "en": "dog food"
032     *  }
033     *  </code></pre>
034     * @param builder function to build the value value
035     * @return Builder
036     */
037
038    public LocalizedStringFieldBuilder value(
039            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedStringBuilder> builder) {
040        this.value = builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of()).build();
041        return this;
042    }
043
044    /**
045     *  <p>A localized string is a JSON object where the keys are of IETF language tag, and the values the corresponding strings used for that language.</p>
046     *  <pre><code>{
047     *    "de": "Hundefutter",
048     *    "en": "dog food"
049     *  }
050     *  </code></pre>
051     * @param builder function to build the value value
052     * @return Builder
053     */
054
055    public LocalizedStringFieldBuilder withValue(
056            Function<com.commercetools.importapi.models.common.LocalizedStringBuilder, com.commercetools.importapi.models.common.LocalizedString> builder) {
057        this.value = builder.apply(com.commercetools.importapi.models.common.LocalizedStringBuilder.of());
058        return this;
059    }
060
061    /**
062     *  <p>A localized string is a JSON object where the keys are of IETF language tag, and the values the corresponding strings used for that language.</p>
063     *  <pre><code>{
064     *    "de": "Hundefutter",
065     *    "en": "dog food"
066     *  }
067     *  </code></pre>
068     * @param value value to be set
069     * @return Builder
070     */
071
072    public LocalizedStringFieldBuilder value(final com.commercetools.importapi.models.common.LocalizedString value) {
073        this.value = value;
074        return this;
075    }
076
077    /**
078     *  <p>A localized string is a JSON object where the keys are of IETF language tag, and the values the corresponding strings used for that language.</p>
079     *  <pre><code>{
080     *    "de": "Hundefutter",
081     *    "en": "dog food"
082     *  }
083     *  </code></pre>
084     * @return value
085     */
086
087    public com.commercetools.importapi.models.common.LocalizedString getValue() {
088        return this.value;
089    }
090
091    /**
092     * builds LocalizedStringField with checking for non-null required values
093     * @return LocalizedStringField
094     */
095    public LocalizedStringField build() {
096        Objects.requireNonNull(value, LocalizedStringField.class + ": value is missing");
097        return new LocalizedStringFieldImpl(value);
098    }
099
100    /**
101     * builds LocalizedStringField without checking for non-null required values
102     * @return LocalizedStringField
103     */
104    public LocalizedStringField buildUnchecked() {
105        return new LocalizedStringFieldImpl(value);
106    }
107
108    /**
109     * factory method for an instance of LocalizedStringFieldBuilder
110     * @return builder
111     */
112    public static LocalizedStringFieldBuilder of() {
113        return new LocalizedStringFieldBuilder();
114    }
115
116    /**
117     * create builder for LocalizedStringField instance
118     * @param template instance with prefilled values for the builder
119     * @return builder
120     */
121    public static LocalizedStringFieldBuilder of(final LocalizedStringField template) {
122        LocalizedStringFieldBuilder builder = new LocalizedStringFieldBuilder();
123        builder.value = template.getValue();
124        return builder;
125    }
126
127}