001
002package com.commercetools.importapi.models.producttypes;
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 * AttributeConstraintEnum
015 */
016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
017public interface AttributeConstraintEnum extends JsonEnum {
018
019    AttributeConstraintEnum NONE = AttributeConstraintEnumEnum.NONE;
020
021    AttributeConstraintEnum UNIQUE = AttributeConstraintEnumEnum.UNIQUE;
022
023    AttributeConstraintEnum COMBINATION_UNIQUE = AttributeConstraintEnumEnum.COMBINATION_UNIQUE;
024
025    AttributeConstraintEnum SAME_FOR_ALL = AttributeConstraintEnumEnum.SAME_FOR_ALL;
026
027    /**
028     * possible values of AttributeConstraintEnum
029     */
030    enum AttributeConstraintEnumEnum implements AttributeConstraintEnum {
031        /**
032         * None
033         */
034        NONE("None"),
035
036        /**
037         * Unique
038         */
039        UNIQUE("Unique"),
040
041        /**
042         * CombinationUnique
043         */
044        COMBINATION_UNIQUE("CombinationUnique"),
045
046        /**
047         * SameForAll
048         */
049        SAME_FOR_ALL("SameForAll");
050        private final String jsonName;
051
052        private AttributeConstraintEnumEnum(final String jsonName) {
053            this.jsonName = jsonName;
054        }
055
056        public String getJsonName() {
057            return jsonName;
058        }
059
060        public String toString() {
061            return jsonName;
062        }
063    }
064
065    /**
066     * the JSON value
067     * @return json value
068     */
069    @JsonValue
070    String getJsonName();
071
072    /**
073     * the enum value
074     * @return name
075     */
076    String name();
077
078    /**
079     * convert value to string
080     * @return string representation
081     */
082    String toString();
083
084    /**
085     * factory method for a enum value of AttributeConstraintEnum
086     * if no enum has been found an anonymous instance will be created
087     * @param value the enum value to be wrapped
088     * @return enum instance
089     */
090    @JsonCreator
091    public static AttributeConstraintEnum findEnum(String value) {
092        return findEnumViaJsonName(value).orElse(new AttributeConstraintEnum() {
093            @Override
094            public String getJsonName() {
095                return value;
096            }
097
098            @Override
099            public String name() {
100                return value.toUpperCase();
101            }
102
103            public String toString() {
104                return value;
105            }
106        });
107    }
108
109    /**
110     * method to find enum using the JSON value
111     * @param jsonName the json value to be wrapped
112     * @return optional of enum instance
113     */
114    public static Optional<AttributeConstraintEnum> findEnumViaJsonName(String jsonName) {
115        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
116    }
117
118    /**
119     * possible enum values
120     * @return array of possible enum values
121     */
122    public static AttributeConstraintEnum[] values() {
123        return AttributeConstraintEnumEnum.values();
124    }
125
126}