001
002package com.commercetools.api.models.order;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import javax.annotation.Nullable;
009import javax.validation.Valid;
010import javax.validation.constraints.NotNull;
011
012import com.commercetools.api.models.state.StateResourceIdentifier;
013import com.fasterxml.jackson.annotation.*;
014import com.fasterxml.jackson.databind.annotation.*;
015
016import io.vrap.rmf.base.client.utils.Generated;
017
018/**
019 * OrderTransitionStateAction
020 *
021 * <hr>
022 * Example to create an instance using the builder pattern
023 * <div class=code-example>
024 * <pre><code class='java'>
025 *     OrderTransitionStateAction orderTransitionStateAction = OrderTransitionStateAction.builder()
026 *             .state(stateBuilder -> stateBuilder)
027 *             .build()
028 * </code></pre>
029 * </div>
030 */
031@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
032@JsonDeserialize(as = OrderTransitionStateActionImpl.class)
033public interface OrderTransitionStateAction extends OrderUpdateAction {
034
035    /**
036     * discriminator value for OrderTransitionStateAction
037     */
038    String TRANSITION_STATE = "transitionState";
039
040    /**
041     *  <p>ResourceIdentifier to a State.</p>
042     * @return state
043     */
044    @NotNull
045    @Valid
046    @JsonProperty("state")
047    public StateResourceIdentifier getState();
048
049    /**
050     *
051     * @return force
052     */
053
054    @JsonProperty("force")
055    public Boolean getForce();
056
057    /**
058     *  <p>ResourceIdentifier to a State.</p>
059     * @param state value to be set
060     */
061
062    public void setState(final StateResourceIdentifier state);
063
064    /**
065     * set force
066     * @param force value to be set
067     */
068
069    public void setForce(final Boolean force);
070
071    /**
072     * factory method
073     * @return instance of OrderTransitionStateAction
074     */
075    public static OrderTransitionStateAction of() {
076        return new OrderTransitionStateActionImpl();
077    }
078
079    /**
080     * factory method to create a shallow copy OrderTransitionStateAction
081     * @param template instance to be copied
082     * @return copy instance
083     */
084    public static OrderTransitionStateAction of(final OrderTransitionStateAction template) {
085        OrderTransitionStateActionImpl instance = new OrderTransitionStateActionImpl();
086        instance.setState(template.getState());
087        instance.setForce(template.getForce());
088        return instance;
089    }
090
091    /**
092     * factory method to create a deep copy of OrderTransitionStateAction
093     * @param template instance to be copied
094     * @return copy instance
095     */
096    @Nullable
097    public static OrderTransitionStateAction deepCopy(@Nullable final OrderTransitionStateAction template) {
098        if (template == null) {
099            return null;
100        }
101        OrderTransitionStateActionImpl instance = new OrderTransitionStateActionImpl();
102        instance.setState(com.commercetools.api.models.state.StateResourceIdentifier.deepCopy(template.getState()));
103        instance.setForce(template.getForce());
104        return instance;
105    }
106
107    /**
108     * builder factory method for OrderTransitionStateAction
109     * @return builder
110     */
111    public static OrderTransitionStateActionBuilder builder() {
112        return OrderTransitionStateActionBuilder.of();
113    }
114
115    /**
116     * create builder for OrderTransitionStateAction instance
117     * @param template instance with prefilled values for the builder
118     * @return builder
119     */
120    public static OrderTransitionStateActionBuilder builder(final OrderTransitionStateAction template) {
121        return OrderTransitionStateActionBuilder.of(template);
122    }
123
124    /**
125     * accessor map function
126     * @param <T> mapped type
127     * @param helper function to map the object
128     * @return mapped value
129     */
130    default <T> T withOrderTransitionStateAction(Function<OrderTransitionStateAction, T> helper) {
131        return helper.apply(this);
132    }
133
134    /**
135     * gives a TypeReference for usage with Jackson DataBind
136     * @return TypeReference
137     */
138    public static com.fasterxml.jackson.core.type.TypeReference<OrderTransitionStateAction> typeReference() {
139        return new com.fasterxml.jackson.core.type.TypeReference<OrderTransitionStateAction>() {
140            @Override
141            public String toString() {
142                return "TypeReference<OrderTransitionStateAction>";
143            }
144        };
145    }
146}