001
002package com.commercetools.api.models.order_edit;
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 * OrderEditReferenceBuilder
014 * <hr>
015 * Example to create an instance using the builder pattern
016 * <div class=code-example>
017 * <pre><code class='java'>
018 *     OrderEditReference orderEditReference = OrderEditReference.builder()
019 *             .id("{id}")
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 OrderEditReferenceBuilder implements Builder<OrderEditReference> {
026
027    private String id;
028
029    @Nullable
030    private com.commercetools.api.models.order_edit.OrderEdit obj;
031
032    /**
033     *  <p>Unique identifier of the referenced OrderEdit.</p>
034     * @param id value to be set
035     * @return Builder
036     */
037
038    public OrderEditReferenceBuilder id(final String id) {
039        this.id = id;
040        return this;
041    }
042
043    /**
044     *  <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p>
045     * @param builder function to build the obj value
046     * @return Builder
047     */
048
049    public OrderEditReferenceBuilder obj(
050            Function<com.commercetools.api.models.order_edit.OrderEditBuilder, com.commercetools.api.models.order_edit.OrderEditBuilder> builder) {
051        this.obj = builder.apply(com.commercetools.api.models.order_edit.OrderEditBuilder.of()).build();
052        return this;
053    }
054
055    /**
056     *  <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p>
057     * @param builder function to build the obj value
058     * @return Builder
059     */
060
061    public OrderEditReferenceBuilder withObj(
062            Function<com.commercetools.api.models.order_edit.OrderEditBuilder, com.commercetools.api.models.order_edit.OrderEdit> builder) {
063        this.obj = builder.apply(com.commercetools.api.models.order_edit.OrderEditBuilder.of());
064        return this;
065    }
066
067    /**
068     *  <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p>
069     * @param obj value to be set
070     * @return Builder
071     */
072
073    public OrderEditReferenceBuilder obj(@Nullable final com.commercetools.api.models.order_edit.OrderEdit obj) {
074        this.obj = obj;
075        return this;
076    }
077
078    /**
079     *  <p>Unique identifier of the referenced OrderEdit.</p>
080     * @return id
081     */
082
083    public String getId() {
084        return this.id;
085    }
086
087    /**
088     *  <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p>
089     * @return obj
090     */
091
092    @Nullable
093    public com.commercetools.api.models.order_edit.OrderEdit getObj() {
094        return this.obj;
095    }
096
097    /**
098     * builds OrderEditReference with checking for non-null required values
099     * @return OrderEditReference
100     */
101    public OrderEditReference build() {
102        Objects.requireNonNull(id, OrderEditReference.class + ": id is missing");
103        return new OrderEditReferenceImpl(id, obj);
104    }
105
106    /**
107     * builds OrderEditReference without checking for non-null required values
108     * @return OrderEditReference
109     */
110    public OrderEditReference buildUnchecked() {
111        return new OrderEditReferenceImpl(id, obj);
112    }
113
114    /**
115     * factory method for an instance of OrderEditReferenceBuilder
116     * @return builder
117     */
118    public static OrderEditReferenceBuilder of() {
119        return new OrderEditReferenceBuilder();
120    }
121
122    /**
123     * create builder for OrderEditReference instance
124     * @param template instance with prefilled values for the builder
125     * @return builder
126     */
127    public static OrderEditReferenceBuilder of(final OrderEditReference template) {
128        OrderEditReferenceBuilder builder = new OrderEditReferenceBuilder();
129        builder.id = template.getId();
130        builder.obj = template.getObj();
131        return builder;
132    }
133
134}