001
002package com.commercetools.api.models.message;
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 * StandalonePriceTierAddedMessagePayloadBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     StandalonePriceTierAddedMessagePayload standalonePriceTierAddedMessagePayload = StandalonePriceTierAddedMessagePayload.builder()
017 *             .tier(tierBuilder -> tierBuilder)
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 StandalonePriceTierAddedMessagePayloadBuilder implements Builder<StandalonePriceTierAddedMessagePayload> {
024
025    private com.commercetools.api.models.common.PriceTier tier;
026
027    /**
028     *  <p>The Price Tier that has been added to the array field <code>tiers</code> for the StandalonePrice.</p>
029     * @param builder function to build the tier value
030     * @return Builder
031     */
032
033    public StandalonePriceTierAddedMessagePayloadBuilder tier(
034            Function<com.commercetools.api.models.common.PriceTierBuilder, com.commercetools.api.models.common.PriceTierBuilder> builder) {
035        this.tier = builder.apply(com.commercetools.api.models.common.PriceTierBuilder.of()).build();
036        return this;
037    }
038
039    /**
040     *  <p>The Price Tier that has been added to the array field <code>tiers</code> for the StandalonePrice.</p>
041     * @param builder function to build the tier value
042     * @return Builder
043     */
044
045    public StandalonePriceTierAddedMessagePayloadBuilder withTier(
046            Function<com.commercetools.api.models.common.PriceTierBuilder, com.commercetools.api.models.common.PriceTier> builder) {
047        this.tier = builder.apply(com.commercetools.api.models.common.PriceTierBuilder.of());
048        return this;
049    }
050
051    /**
052     *  <p>The Price Tier that has been added to the array field <code>tiers</code> for the StandalonePrice.</p>
053     * @param tier value to be set
054     * @return Builder
055     */
056
057    public StandalonePriceTierAddedMessagePayloadBuilder tier(
058            final com.commercetools.api.models.common.PriceTier tier) {
059        this.tier = tier;
060        return this;
061    }
062
063    /**
064     *  <p>The Price Tier that has been added to the array field <code>tiers</code> for the StandalonePrice.</p>
065     * @return tier
066     */
067
068    public com.commercetools.api.models.common.PriceTier getTier() {
069        return this.tier;
070    }
071
072    /**
073     * builds StandalonePriceTierAddedMessagePayload with checking for non-null required values
074     * @return StandalonePriceTierAddedMessagePayload
075     */
076    public StandalonePriceTierAddedMessagePayload build() {
077        Objects.requireNonNull(tier, StandalonePriceTierAddedMessagePayload.class + ": tier is missing");
078        return new StandalonePriceTierAddedMessagePayloadImpl(tier);
079    }
080
081    /**
082     * builds StandalonePriceTierAddedMessagePayload without checking for non-null required values
083     * @return StandalonePriceTierAddedMessagePayload
084     */
085    public StandalonePriceTierAddedMessagePayload buildUnchecked() {
086        return new StandalonePriceTierAddedMessagePayloadImpl(tier);
087    }
088
089    /**
090     * factory method for an instance of StandalonePriceTierAddedMessagePayloadBuilder
091     * @return builder
092     */
093    public static StandalonePriceTierAddedMessagePayloadBuilder of() {
094        return new StandalonePriceTierAddedMessagePayloadBuilder();
095    }
096
097    /**
098     * create builder for StandalonePriceTierAddedMessagePayload instance
099     * @param template instance with prefilled values for the builder
100     * @return builder
101     */
102    public static StandalonePriceTierAddedMessagePayloadBuilder of(
103            final StandalonePriceTierAddedMessagePayload template) {
104        StandalonePriceTierAddedMessagePayloadBuilder builder = new StandalonePriceTierAddedMessagePayloadBuilder();
105        builder.tier = template.getTier();
106        return builder;
107    }
108
109}