001
002package com.commercetools.history.models.common;
003
004import java.util.Arrays;
005import java.util.Optional;
006
007import com.fasterxml.jackson.annotation.JsonCreator;
008import com.fasterxml.jackson.annotation.JsonValue;
009
010import io.vrap.rmf.base.client.JsonEnum;
011import io.vrap.rmf.base.client.utils.Generated;
012
013/**
014 * QuoteRequestState
015 */
016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
017public interface QuoteRequestState extends JsonEnum {
018
019    QuoteRequestState SUBMITTED = QuoteRequestStateEnum.SUBMITTED;
020
021    QuoteRequestState ACCEPTED = QuoteRequestStateEnum.ACCEPTED;
022
023    QuoteRequestState CLOSED = QuoteRequestStateEnum.CLOSED;
024
025    QuoteRequestState REJECTED = QuoteRequestStateEnum.REJECTED;
026
027    QuoteRequestState CANCELLED = QuoteRequestStateEnum.CANCELLED;
028
029    /**
030     * possible values of QuoteRequestState
031     */
032    enum QuoteRequestStateEnum implements QuoteRequestState {
033        /**
034         * Submitted
035         */
036        SUBMITTED("Submitted"),
037
038        /**
039         * Accepted
040         */
041        ACCEPTED("Accepted"),
042
043        /**
044         * Closed
045         */
046        CLOSED("Closed"),
047
048        /**
049         * Rejected
050         */
051        REJECTED("Rejected"),
052
053        /**
054         * Cancelled
055         */
056        CANCELLED("Cancelled");
057        private final String jsonName;
058
059        private QuoteRequestStateEnum(final String jsonName) {
060            this.jsonName = jsonName;
061        }
062
063        public String getJsonName() {
064            return jsonName;
065        }
066
067        public String toString() {
068            return jsonName;
069        }
070    }
071
072    /**
073     * the JSON value
074     * @return json value
075     */
076    @JsonValue
077    String getJsonName();
078
079    /**
080     * the enum value
081     * @return name
082     */
083    String name();
084
085    /**
086     * convert value to string
087     * @return string representation
088     */
089    String toString();
090
091    /**
092     * factory method for a enum value of QuoteRequestState
093     * if no enum has been found an anonymous instance will be created
094     * @param value the enum value to be wrapped
095     * @return enum instance
096     */
097    @JsonCreator
098    public static QuoteRequestState findEnum(String value) {
099        return findEnumViaJsonName(value).orElse(new QuoteRequestState() {
100            @Override
101            public String getJsonName() {
102                return value;
103            }
104
105            @Override
106            public String name() {
107                return value.toUpperCase();
108            }
109
110            public String toString() {
111                return value;
112            }
113        });
114    }
115
116    /**
117     * method to find enum using the JSON value
118     * @param jsonName the json value to be wrapped
119     * @return optional of enum instance
120     */
121    public static Optional<QuoteRequestState> findEnumViaJsonName(String jsonName) {
122        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
123    }
124
125    /**
126     * possible enum values
127     * @return array of possible enum values
128     */
129    public static QuoteRequestState[] values() {
130        return QuoteRequestStateEnum.values();
131    }
132
133}