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}