001
002package com.commercetools.api.models.message;
003
004import java.util.*;
005import java.util.function.Function;
006
007import javax.annotation.Nullable;
008
009import io.vrap.rmf.base.client.Builder;
010import io.vrap.rmf.base.client.utils.Generated;
011
012/**
013 * OrderLineItemDistributionChannelSetMessagePayloadBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     OrderLineItemDistributionChannelSetMessagePayload orderLineItemDistributionChannelSetMessagePayload = OrderLineItemDistributionChannelSetMessagePayload.builder()
019 *             .lineItemId("{lineItemId}")
020 *             .build()
021 * </code></pre>
022 * </div>
023 */
024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
025public class OrderLineItemDistributionChannelSetMessagePayloadBuilder
026        implements Builder<OrderLineItemDistributionChannelSetMessagePayload> {
027
028    private String lineItemId;
029
030    @Nullable
031    private com.commercetools.api.models.channel.ChannelReference distributionChannel;
032
033    /**
034     *  <p>Unique identifier of the Line Item.</p>
035     * @param lineItemId value to be set
036     * @return Builder
037     */
038
039    public OrderLineItemDistributionChannelSetMessagePayloadBuilder lineItemId(final String lineItemId) {
040        this.lineItemId = lineItemId;
041        return this;
042    }
043
044    /**
045     *  <p>Distribution Channel that was set.</p>
046     * @param builder function to build the distributionChannel value
047     * @return Builder
048     */
049
050    public OrderLineItemDistributionChannelSetMessagePayloadBuilder distributionChannel(
051            Function<com.commercetools.api.models.channel.ChannelReferenceBuilder, com.commercetools.api.models.channel.ChannelReferenceBuilder> builder) {
052        this.distributionChannel = builder.apply(com.commercetools.api.models.channel.ChannelReferenceBuilder.of())
053                .build();
054        return this;
055    }
056
057    /**
058     *  <p>Distribution Channel that was set.</p>
059     * @param builder function to build the distributionChannel value
060     * @return Builder
061     */
062
063    public OrderLineItemDistributionChannelSetMessagePayloadBuilder withDistributionChannel(
064            Function<com.commercetools.api.models.channel.ChannelReferenceBuilder, com.commercetools.api.models.channel.ChannelReference> builder) {
065        this.distributionChannel = builder.apply(com.commercetools.api.models.channel.ChannelReferenceBuilder.of());
066        return this;
067    }
068
069    /**
070     *  <p>Distribution Channel that was set.</p>
071     * @param distributionChannel value to be set
072     * @return Builder
073     */
074
075    public OrderLineItemDistributionChannelSetMessagePayloadBuilder distributionChannel(
076            @Nullable final com.commercetools.api.models.channel.ChannelReference distributionChannel) {
077        this.distributionChannel = distributionChannel;
078        return this;
079    }
080
081    /**
082     *  <p>Unique identifier of the Line Item.</p>
083     * @return lineItemId
084     */
085
086    public String getLineItemId() {
087        return this.lineItemId;
088    }
089
090    /**
091     *  <p>Distribution Channel that was set.</p>
092     * @return distributionChannel
093     */
094
095    @Nullable
096    public com.commercetools.api.models.channel.ChannelReference getDistributionChannel() {
097        return this.distributionChannel;
098    }
099
100    /**
101     * builds OrderLineItemDistributionChannelSetMessagePayload with checking for non-null required values
102     * @return OrderLineItemDistributionChannelSetMessagePayload
103     */
104    public OrderLineItemDistributionChannelSetMessagePayload build() {
105        Objects.requireNonNull(lineItemId,
106            OrderLineItemDistributionChannelSetMessagePayload.class + ": lineItemId is missing");
107        return new OrderLineItemDistributionChannelSetMessagePayloadImpl(lineItemId, distributionChannel);
108    }
109
110    /**
111     * builds OrderLineItemDistributionChannelSetMessagePayload without checking for non-null required values
112     * @return OrderLineItemDistributionChannelSetMessagePayload
113     */
114    public OrderLineItemDistributionChannelSetMessagePayload buildUnchecked() {
115        return new OrderLineItemDistributionChannelSetMessagePayloadImpl(lineItemId, distributionChannel);
116    }
117
118    /**
119     * factory method for an instance of OrderLineItemDistributionChannelSetMessagePayloadBuilder
120     * @return builder
121     */
122    public static OrderLineItemDistributionChannelSetMessagePayloadBuilder of() {
123        return new OrderLineItemDistributionChannelSetMessagePayloadBuilder();
124    }
125
126    /**
127     * create builder for OrderLineItemDistributionChannelSetMessagePayload instance
128     * @param template instance with prefilled values for the builder
129     * @return builder
130     */
131    public static OrderLineItemDistributionChannelSetMessagePayloadBuilder of(
132            final OrderLineItemDistributionChannelSetMessagePayload template) {
133        OrderLineItemDistributionChannelSetMessagePayloadBuilder builder = new OrderLineItemDistributionChannelSetMessagePayloadBuilder();
134        builder.lineItemId = template.getLineItemId();
135        builder.distributionChannel = template.getDistributionChannel();
136        return builder;
137    }
138
139}