001
002package com.commercetools.api.models.product;
003
004import java.util.*;
005
006import io.vrap.rmf.base.client.Builder;
007import io.vrap.rmf.base.client.utils.Generated;
008
009/**
010 * ProductVariantChannelAvailabilityMapBuilder
011 * <hr>
012 * Example to create an instance using the builder pattern
013 * <div class=code-example>
014 * <pre><code class='java'>
015 *     ProductVariantChannelAvailabilityMap productVariantChannelAvailabilityMap = ProductVariantChannelAvailabilityMap.builder()
016 *             .//(//Builder -> //Builder)
017 *             .build()
018 * </code></pre>
019 * </div>
020 */
021@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
022public class ProductVariantChannelAvailabilityMapBuilder implements Builder<ProductVariantChannelAvailabilityMap> {
023
024    private Map<String, com.commercetools.api.models.product.ProductVariantChannelAvailability> values = new HashMap<>();
025
026    /**
027     * assign pattern properties to the builder
028     * @param values properties to be set
029     * @return Builder
030     */
031
032    public ProductVariantChannelAvailabilityMapBuilder values(
033            final Map<String, com.commercetools.api.models.product.ProductVariantChannelAvailability> values) {
034        this.values = values;
035        return this;
036    }
037
038    /**
039     * assign a pattern property to the builder
040     * @param key property name
041     * @param value property value
042     * @return Builder
043     */
044
045    public ProductVariantChannelAvailabilityMapBuilder addValue(final String key,
046            final com.commercetools.api.models.product.ProductVariantChannelAvailability value) {
047        if (this.values == null) {
048            values = new HashMap<>();
049        }
050        values.put(key, value);
051        return this;
052    }
053
054    /**
055     * values of pattern properties
056     * @return pattern properties
057     */
058
059    public Map<String, com.commercetools.api.models.product.ProductVariantChannelAvailability> getValues() {
060        return this.values;
061    }
062
063    /**
064     * builds ProductVariantChannelAvailabilityMap with checking for non-null required values
065     * @return ProductVariantChannelAvailabilityMap
066     */
067    public ProductVariantChannelAvailabilityMap build() {
068        return new ProductVariantChannelAvailabilityMapImpl(values);
069    }
070
071    /**
072     * builds ProductVariantChannelAvailabilityMap without checking for non-null required values
073     * @return ProductVariantChannelAvailabilityMap
074     */
075    public ProductVariantChannelAvailabilityMap buildUnchecked() {
076        return new ProductVariantChannelAvailabilityMapImpl(values);
077    }
078
079    /**
080     * factory method for an instance of ProductVariantChannelAvailabilityMapBuilder
081     * @return builder
082     */
083    public static ProductVariantChannelAvailabilityMapBuilder of() {
084        return new ProductVariantChannelAvailabilityMapBuilder();
085    }
086
087    /**
088     * create builder for ProductVariantChannelAvailabilityMap instance
089     * @param template instance with prefilled values for the builder
090     * @return builder
091     */
092    public static ProductVariantChannelAvailabilityMapBuilder of(final ProductVariantChannelAvailabilityMap template) {
093        ProductVariantChannelAvailabilityMapBuilder builder = new ProductVariantChannelAvailabilityMapBuilder();
094        builder.values = template.values();
095        return builder;
096    }
097
098}