001
002package com.commercetools.ml.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.utils.Generated;
011
012/**
013 * ReferenceTypeId
014 */
015@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
016public interface ReferenceTypeId {
017
018    ReferenceTypeId CART = ReferenceTypeIdEnum.CART;
019
020    ReferenceTypeId CART_DISCOUNT = ReferenceTypeIdEnum.CART_DISCOUNT;
021
022    ReferenceTypeId CATEGORY = ReferenceTypeIdEnum.CATEGORY;
023
024    ReferenceTypeId CHANNEL = ReferenceTypeIdEnum.CHANNEL;
025
026    ReferenceTypeId CUSTOMER = ReferenceTypeIdEnum.CUSTOMER;
027
028    ReferenceTypeId CUSTOMER_GROUP = ReferenceTypeIdEnum.CUSTOMER_GROUP;
029
030    ReferenceTypeId DISCOUNT_CODE = ReferenceTypeIdEnum.DISCOUNT_CODE;
031
032    ReferenceTypeId KEY_VALUE_DOCUMENT = ReferenceTypeIdEnum.KEY_VALUE_DOCUMENT;
033
034    ReferenceTypeId PAYMENT = ReferenceTypeIdEnum.PAYMENT;
035
036    ReferenceTypeId PRODUCT = ReferenceTypeIdEnum.PRODUCT;
037
038    ReferenceTypeId PRODUCT_TYPE = ReferenceTypeIdEnum.PRODUCT_TYPE;
039
040    ReferenceTypeId PRODUCT_DISCOUNT = ReferenceTypeIdEnum.PRODUCT_DISCOUNT;
041
042    ReferenceTypeId ORDER = ReferenceTypeIdEnum.ORDER;
043
044    ReferenceTypeId REVIEW = ReferenceTypeIdEnum.REVIEW;
045
046    ReferenceTypeId SHOPPING_LIST = ReferenceTypeIdEnum.SHOPPING_LIST;
047
048    ReferenceTypeId SHIPPING_METHOD = ReferenceTypeIdEnum.SHIPPING_METHOD;
049
050    ReferenceTypeId STATE = ReferenceTypeIdEnum.STATE;
051
052    ReferenceTypeId STORE = ReferenceTypeIdEnum.STORE;
053
054    ReferenceTypeId TAX_CATEGORY = ReferenceTypeIdEnum.TAX_CATEGORY;
055
056    ReferenceTypeId TYPE = ReferenceTypeIdEnum.TYPE;
057
058    ReferenceTypeId ZONE = ReferenceTypeIdEnum.ZONE;
059
060    ReferenceTypeId INVENTORY_ENTRY = ReferenceTypeIdEnum.INVENTORY_ENTRY;
061
062    ReferenceTypeId ORDER_EDIT = ReferenceTypeIdEnum.ORDER_EDIT;
063
064    enum ReferenceTypeIdEnum implements ReferenceTypeId {
065        CART("cart"),
066
067        CART_DISCOUNT("cart-discount"),
068
069        CATEGORY("category"),
070
071        CHANNEL("channel"),
072
073        CUSTOMER("customer"),
074
075        CUSTOMER_GROUP("customer-group"),
076
077        DISCOUNT_CODE("discount-code"),
078
079        KEY_VALUE_DOCUMENT("key-value-document"),
080
081        PAYMENT("payment"),
082
083        PRODUCT("product"),
084
085        PRODUCT_TYPE("product-type"),
086
087        PRODUCT_DISCOUNT("product-discount"),
088
089        ORDER("order"),
090
091        REVIEW("review"),
092
093        SHOPPING_LIST("shopping-list"),
094
095        SHIPPING_METHOD("shipping-method"),
096
097        STATE("state"),
098
099        STORE("store"),
100
101        TAX_CATEGORY("tax-category"),
102
103        TYPE("type"),
104
105        ZONE("zone"),
106
107        INVENTORY_ENTRY("inventory-entry"),
108
109        ORDER_EDIT("order-edit");
110        private final String jsonName;
111
112        private ReferenceTypeIdEnum(final String jsonName) {
113            this.jsonName = jsonName;
114        }
115
116        public String getJsonName() {
117            return jsonName;
118        }
119
120        public String toString() {
121            return jsonName;
122        }
123    }
124
125    @JsonValue
126    String getJsonName();
127
128    String name();
129
130    String toString();
131
132    @JsonCreator
133    public static ReferenceTypeId findEnum(String value) {
134        return findEnumViaJsonName(value).orElse(new ReferenceTypeId() {
135            @Override
136            public String getJsonName() {
137                return value;
138            }
139
140            @Override
141            public String name() {
142                return value.toUpperCase();
143            }
144
145            public String toString() {
146                return value;
147            }
148        });
149    }
150
151    public static Optional<ReferenceTypeId> findEnumViaJsonName(String jsonName) {
152        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
153    }
154
155    public static ReferenceTypeId[] values() {
156        return ReferenceTypeIdEnum.values();
157    }
158}