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