001
002package com.commercetools.api.models.order_edit;
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 * OrderEditPreviewSuccessBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     OrderEditPreviewSuccess orderEditPreviewSuccess = OrderEditPreviewSuccess.builder()
017 *             .preview(previewBuilder -> previewBuilder)
018 *             .plusMessagePayloads(messagePayloadsBuilder -> messagePayloadsBuilder)
019 *             .build()
020 * </code></pre>
021 * </div>
022 */
023@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
024public class OrderEditPreviewSuccessBuilder implements Builder<OrderEditPreviewSuccess> {
025
026    private com.commercetools.api.models.order_edit.StagedOrder preview;
027
028    private java.util.List<com.commercetools.api.models.message.MessagePayload> messagePayloads;
029
030    /**
031     * set the value to the preview using the builder function
032     * @param builder function to build the preview value
033     * @return Builder
034     */
035
036    public OrderEditPreviewSuccessBuilder preview(
037            Function<com.commercetools.api.models.order_edit.StagedOrderBuilder, com.commercetools.api.models.order_edit.StagedOrderBuilder> builder) {
038        this.preview = builder.apply(com.commercetools.api.models.order_edit.StagedOrderBuilder.of()).build();
039        return this;
040    }
041
042    /**
043     * set the value to the preview using the builder function
044     * @param builder function to build the preview value
045     * @return Builder
046     */
047
048    public OrderEditPreviewSuccessBuilder withPreview(
049            Function<com.commercetools.api.models.order_edit.StagedOrderBuilder, com.commercetools.api.models.order_edit.StagedOrder> builder) {
050        this.preview = builder.apply(com.commercetools.api.models.order_edit.StagedOrderBuilder.of());
051        return this;
052    }
053
054    /**
055     * set the value to the preview
056     * @param preview value to be set
057     * @return Builder
058     */
059
060    public OrderEditPreviewSuccessBuilder preview(final com.commercetools.api.models.order_edit.StagedOrder preview) {
061        this.preview = preview;
062        return this;
063    }
064
065    /**
066     * set values to the messagePayloads
067     * @param messagePayloads value to be set
068     * @return Builder
069     */
070
071    public OrderEditPreviewSuccessBuilder messagePayloads(
072            final com.commercetools.api.models.message.MessagePayload... messagePayloads) {
073        this.messagePayloads = new ArrayList<>(Arrays.asList(messagePayloads));
074        return this;
075    }
076
077    /**
078     * set value to the messagePayloads
079     * @param messagePayloads value to be set
080     * @return Builder
081     */
082
083    public OrderEditPreviewSuccessBuilder messagePayloads(
084            final java.util.List<com.commercetools.api.models.message.MessagePayload> messagePayloads) {
085        this.messagePayloads = messagePayloads;
086        return this;
087    }
088
089    /**
090     * add values to the messagePayloads
091     * @param messagePayloads value to be set
092     * @return Builder
093     */
094
095    public OrderEditPreviewSuccessBuilder plusMessagePayloads(
096            final com.commercetools.api.models.message.MessagePayload... messagePayloads) {
097        if (this.messagePayloads == null) {
098            this.messagePayloads = new ArrayList<>();
099        }
100        this.messagePayloads.addAll(Arrays.asList(messagePayloads));
101        return this;
102    }
103
104    /**
105     * add a value to the messagePayloads using the builder function
106     * @param builder function to build the messagePayloads value
107     * @return Builder
108     */
109
110    public OrderEditPreviewSuccessBuilder plusMessagePayloads(
111            Function<com.commercetools.api.models.message.MessagePayloadBuilder, Builder<? extends com.commercetools.api.models.message.MessagePayload>> builder) {
112        if (this.messagePayloads == null) {
113            this.messagePayloads = new ArrayList<>();
114        }
115        this.messagePayloads
116                .add(builder.apply(com.commercetools.api.models.message.MessagePayloadBuilder.of()).build());
117        return this;
118    }
119
120    /**
121     * set the value to the messagePayloads using the builder function
122     * @param builder function to build the messagePayloads value
123     * @return Builder
124     */
125
126    public OrderEditPreviewSuccessBuilder withMessagePayloads(
127            Function<com.commercetools.api.models.message.MessagePayloadBuilder, Builder<? extends com.commercetools.api.models.message.MessagePayload>> builder) {
128        this.messagePayloads = new ArrayList<>();
129        this.messagePayloads
130                .add(builder.apply(com.commercetools.api.models.message.MessagePayloadBuilder.of()).build());
131        return this;
132    }
133
134    /**
135     * value of preview}
136     * @return preview
137     */
138
139    public com.commercetools.api.models.order_edit.StagedOrder getPreview() {
140        return this.preview;
141    }
142
143    /**
144     * value of messagePayloads}
145     * @return messagePayloads
146     */
147
148    public java.util.List<com.commercetools.api.models.message.MessagePayload> getMessagePayloads() {
149        return this.messagePayloads;
150    }
151
152    /**
153     * builds OrderEditPreviewSuccess with checking for non-null required values
154     * @return OrderEditPreviewSuccess
155     */
156    public OrderEditPreviewSuccess build() {
157        Objects.requireNonNull(preview, OrderEditPreviewSuccess.class + ": preview is missing");
158        Objects.requireNonNull(messagePayloads, OrderEditPreviewSuccess.class + ": messagePayloads is missing");
159        return new OrderEditPreviewSuccessImpl(preview, messagePayloads);
160    }
161
162    /**
163     * builds OrderEditPreviewSuccess without checking for non-null required values
164     * @return OrderEditPreviewSuccess
165     */
166    public OrderEditPreviewSuccess buildUnchecked() {
167        return new OrderEditPreviewSuccessImpl(preview, messagePayloads);
168    }
169
170    /**
171     * factory method for an instance of OrderEditPreviewSuccessBuilder
172     * @return builder
173     */
174    public static OrderEditPreviewSuccessBuilder of() {
175        return new OrderEditPreviewSuccessBuilder();
176    }
177
178    /**
179     * create builder for OrderEditPreviewSuccess instance
180     * @param template instance with prefilled values for the builder
181     * @return builder
182     */
183    public static OrderEditPreviewSuccessBuilder of(final OrderEditPreviewSuccess template) {
184        OrderEditPreviewSuccessBuilder builder = new OrderEditPreviewSuccessBuilder();
185        builder.preview = template.getPreview();
186        builder.messagePayloads = template.getMessagePayloads();
187        return builder;
188    }
189
190}