001
002package com.commercetools.api.models.message;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import javax.annotation.Nullable;
009import javax.validation.constraints.NotNull;
010
011import com.commercetools.api.models.quote_request.QuoteRequestState;
012import com.fasterxml.jackson.annotation.*;
013import com.fasterxml.jackson.databind.annotation.*;
014
015import io.vrap.rmf.base.client.utils.Generated;
016
017/**
018 *  <p>Generated after a successful Change Quote Request State update action.</p>
019 *
020 * <hr>
021 * Example to create an instance using the builder pattern
022 * <div class=code-example>
023 * <pre><code class='java'>
024 *     QuoteRequestStateChangedMessagePayload quoteRequestStateChangedMessagePayload = QuoteRequestStateChangedMessagePayload.builder()
025 *             .quoteRequestState(QuoteRequestState.SUBMITTED)
026 *             .oldQuoteRequestState(QuoteRequestState.SUBMITTED)
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 = QuoteRequestStateChangedMessagePayloadImpl.class)
033public interface QuoteRequestStateChangedMessagePayload extends MessagePayload {
034
035    /**
036     * discriminator value for QuoteRequestStateChangedMessagePayload
037     */
038    String QUOTE_REQUEST_STATE_CHANGED = "QuoteRequestStateChanged";
039
040    /**
041     *  <p>State of the Quote Request after the Change Quote Request State update action.</p>
042     * @return quoteRequestState
043     */
044    @NotNull
045    @JsonProperty("quoteRequestState")
046    public QuoteRequestState getQuoteRequestState();
047
048    /**
049     *  <p>State of the Quote Request before the Change Quote Request State update action.</p>
050     * @return oldQuoteRequestState
051     */
052    @NotNull
053    @JsonProperty("oldQuoteRequestState")
054    public QuoteRequestState getOldQuoteRequestState();
055
056    /**
057     *  <p>State of the Quote Request after the Change Quote Request State update action.</p>
058     * @param quoteRequestState value to be set
059     */
060
061    public void setQuoteRequestState(final QuoteRequestState quoteRequestState);
062
063    /**
064     *  <p>State of the Quote Request before the Change Quote Request State update action.</p>
065     * @param oldQuoteRequestState value to be set
066     */
067
068    public void setOldQuoteRequestState(final QuoteRequestState oldQuoteRequestState);
069
070    /**
071     * factory method
072     * @return instance of QuoteRequestStateChangedMessagePayload
073     */
074    public static QuoteRequestStateChangedMessagePayload of() {
075        return new QuoteRequestStateChangedMessagePayloadImpl();
076    }
077
078    /**
079     * factory method to create a shallow copy QuoteRequestStateChangedMessagePayload
080     * @param template instance to be copied
081     * @return copy instance
082     */
083    public static QuoteRequestStateChangedMessagePayload of(final QuoteRequestStateChangedMessagePayload template) {
084        QuoteRequestStateChangedMessagePayloadImpl instance = new QuoteRequestStateChangedMessagePayloadImpl();
085        instance.setQuoteRequestState(template.getQuoteRequestState());
086        instance.setOldQuoteRequestState(template.getOldQuoteRequestState());
087        return instance;
088    }
089
090    /**
091     * factory method to create a deep copy of QuoteRequestStateChangedMessagePayload
092     * @param template instance to be copied
093     * @return copy instance
094     */
095    @Nullable
096    public static QuoteRequestStateChangedMessagePayload deepCopy(
097            @Nullable final QuoteRequestStateChangedMessagePayload template) {
098        if (template == null) {
099            return null;
100        }
101        QuoteRequestStateChangedMessagePayloadImpl instance = new QuoteRequestStateChangedMessagePayloadImpl();
102        instance.setQuoteRequestState(template.getQuoteRequestState());
103        instance.setOldQuoteRequestState(template.getOldQuoteRequestState());
104        return instance;
105    }
106
107    /**
108     * builder factory method for QuoteRequestStateChangedMessagePayload
109     * @return builder
110     */
111    public static QuoteRequestStateChangedMessagePayloadBuilder builder() {
112        return QuoteRequestStateChangedMessagePayloadBuilder.of();
113    }
114
115    /**
116     * create builder for QuoteRequestStateChangedMessagePayload instance
117     * @param template instance with prefilled values for the builder
118     * @return builder
119     */
120    public static QuoteRequestStateChangedMessagePayloadBuilder builder(
121            final QuoteRequestStateChangedMessagePayload template) {
122        return QuoteRequestStateChangedMessagePayloadBuilder.of(template);
123    }
124
125    /**
126     * accessor map function
127     * @param <T> mapped type
128     * @param helper function to map the object
129     * @return mapped value
130     */
131    default <T> T withQuoteRequestStateChangedMessagePayload(
132            Function<QuoteRequestStateChangedMessagePayload, T> helper) {
133        return helper.apply(this);
134    }
135
136    /**
137     * gives a TypeReference for usage with Jackson DataBind
138     * @return TypeReference
139     */
140    public static com.fasterxml.jackson.core.type.TypeReference<QuoteRequestStateChangedMessagePayload> typeReference() {
141        return new com.fasterxml.jackson.core.type.TypeReference<QuoteRequestStateChangedMessagePayload>() {
142            @Override
143            public String toString() {
144                return "TypeReference<QuoteRequestStateChangedMessagePayload>";
145            }
146        };
147    }
148}