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 * OrderEditAppliedBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     OrderEditApplied orderEditApplied = OrderEditApplied.builder()
017 *             .appliedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
018 *             .excerptBeforeEdit(excerptBeforeEditBuilder -> excerptBeforeEditBuilder)
019 *             .excerptAfterEdit(excerptAfterEditBuilder -> excerptAfterEditBuilder)
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 OrderEditAppliedBuilder implements Builder<OrderEditApplied> {
026
027    private java.time.ZonedDateTime appliedAt;
028
029    private com.commercetools.api.models.order_edit.OrderExcerpt excerptBeforeEdit;
030
031    private com.commercetools.api.models.order_edit.OrderExcerpt excerptAfterEdit;
032
033    /**
034     * set the value to the appliedAt
035     * @param appliedAt value to be set
036     * @return Builder
037     */
038
039    public OrderEditAppliedBuilder appliedAt(final java.time.ZonedDateTime appliedAt) {
040        this.appliedAt = appliedAt;
041        return this;
042    }
043
044    /**
045     * set the value to the excerptBeforeEdit using the builder function
046     * @param builder function to build the excerptBeforeEdit value
047     * @return Builder
048     */
049
050    public OrderEditAppliedBuilder excerptBeforeEdit(
051            Function<com.commercetools.api.models.order_edit.OrderExcerptBuilder, com.commercetools.api.models.order_edit.OrderExcerptBuilder> builder) {
052        this.excerptBeforeEdit = builder.apply(com.commercetools.api.models.order_edit.OrderExcerptBuilder.of())
053                .build();
054        return this;
055    }
056
057    /**
058     * set the value to the excerptBeforeEdit using the builder function
059     * @param builder function to build the excerptBeforeEdit value
060     * @return Builder
061     */
062
063    public OrderEditAppliedBuilder withExcerptBeforeEdit(
064            Function<com.commercetools.api.models.order_edit.OrderExcerptBuilder, com.commercetools.api.models.order_edit.OrderExcerpt> builder) {
065        this.excerptBeforeEdit = builder.apply(com.commercetools.api.models.order_edit.OrderExcerptBuilder.of());
066        return this;
067    }
068
069    /**
070     * set the value to the excerptBeforeEdit
071     * @param excerptBeforeEdit value to be set
072     * @return Builder
073     */
074
075    public OrderEditAppliedBuilder excerptBeforeEdit(
076            final com.commercetools.api.models.order_edit.OrderExcerpt excerptBeforeEdit) {
077        this.excerptBeforeEdit = excerptBeforeEdit;
078        return this;
079    }
080
081    /**
082     * set the value to the excerptAfterEdit using the builder function
083     * @param builder function to build the excerptAfterEdit value
084     * @return Builder
085     */
086
087    public OrderEditAppliedBuilder excerptAfterEdit(
088            Function<com.commercetools.api.models.order_edit.OrderExcerptBuilder, com.commercetools.api.models.order_edit.OrderExcerptBuilder> builder) {
089        this.excerptAfterEdit = builder.apply(com.commercetools.api.models.order_edit.OrderExcerptBuilder.of()).build();
090        return this;
091    }
092
093    /**
094     * set the value to the excerptAfterEdit using the builder function
095     * @param builder function to build the excerptAfterEdit value
096     * @return Builder
097     */
098
099    public OrderEditAppliedBuilder withExcerptAfterEdit(
100            Function<com.commercetools.api.models.order_edit.OrderExcerptBuilder, com.commercetools.api.models.order_edit.OrderExcerpt> builder) {
101        this.excerptAfterEdit = builder.apply(com.commercetools.api.models.order_edit.OrderExcerptBuilder.of());
102        return this;
103    }
104
105    /**
106     * set the value to the excerptAfterEdit
107     * @param excerptAfterEdit value to be set
108     * @return Builder
109     */
110
111    public OrderEditAppliedBuilder excerptAfterEdit(
112            final com.commercetools.api.models.order_edit.OrderExcerpt excerptAfterEdit) {
113        this.excerptAfterEdit = excerptAfterEdit;
114        return this;
115    }
116
117    /**
118     * value of appliedAt}
119     * @return appliedAt
120     */
121
122    public java.time.ZonedDateTime getAppliedAt() {
123        return this.appliedAt;
124    }
125
126    /**
127     * value of excerptBeforeEdit}
128     * @return excerptBeforeEdit
129     */
130
131    public com.commercetools.api.models.order_edit.OrderExcerpt getExcerptBeforeEdit() {
132        return this.excerptBeforeEdit;
133    }
134
135    /**
136     * value of excerptAfterEdit}
137     * @return excerptAfterEdit
138     */
139
140    public com.commercetools.api.models.order_edit.OrderExcerpt getExcerptAfterEdit() {
141        return this.excerptAfterEdit;
142    }
143
144    /**
145     * builds OrderEditApplied with checking for non-null required values
146     * @return OrderEditApplied
147     */
148    public OrderEditApplied build() {
149        Objects.requireNonNull(appliedAt, OrderEditApplied.class + ": appliedAt is missing");
150        Objects.requireNonNull(excerptBeforeEdit, OrderEditApplied.class + ": excerptBeforeEdit is missing");
151        Objects.requireNonNull(excerptAfterEdit, OrderEditApplied.class + ": excerptAfterEdit is missing");
152        return new OrderEditAppliedImpl(appliedAt, excerptBeforeEdit, excerptAfterEdit);
153    }
154
155    /**
156     * builds OrderEditApplied without checking for non-null required values
157     * @return OrderEditApplied
158     */
159    public OrderEditApplied buildUnchecked() {
160        return new OrderEditAppliedImpl(appliedAt, excerptBeforeEdit, excerptAfterEdit);
161    }
162
163    /**
164     * factory method for an instance of OrderEditAppliedBuilder
165     * @return builder
166     */
167    public static OrderEditAppliedBuilder of() {
168        return new OrderEditAppliedBuilder();
169    }
170
171    /**
172     * create builder for OrderEditApplied instance
173     * @param template instance with prefilled values for the builder
174     * @return builder
175     */
176    public static OrderEditAppliedBuilder of(final OrderEditApplied template) {
177        OrderEditAppliedBuilder builder = new OrderEditAppliedBuilder();
178        builder.appliedAt = template.getAppliedAt();
179        builder.excerptBeforeEdit = template.getExcerptBeforeEdit();
180        builder.excerptAfterEdit = template.getExcerptAfterEdit();
181        return builder;
182    }
183
184}