001 002package com.commercetools.importapi.models.orders; 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 * <p>Maps to <code>Order.taxMode</code></p> 015 */ 016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 017public interface TaxMode extends JsonEnum { 018 019 TaxMode PLATFORM = TaxModeEnum.PLATFORM; 020 021 TaxMode EXTERNAL = TaxModeEnum.EXTERNAL; 022 023 TaxMode EXTERNAL_AMOUNT = TaxModeEnum.EXTERNAL_AMOUNT; 024 025 TaxMode DISABLED = TaxModeEnum.DISABLED; 026 027 /** 028 * possible values of TaxMode 029 */ 030 enum TaxModeEnum implements TaxMode { 031 /** 032 * Platform 033 */ 034 PLATFORM("Platform"), 035 036 /** 037 * External 038 */ 039 EXTERNAL("External"), 040 041 /** 042 * ExternalAmount 043 */ 044 EXTERNAL_AMOUNT("ExternalAmount"), 045 046 /** 047 * Disabled 048 */ 049 DISABLED("Disabled"); 050 private final String jsonName; 051 052 private TaxModeEnum(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 TaxMode 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 TaxMode findEnum(String value) { 092 return findEnumViaJsonName(value).orElse(new TaxMode() { 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<TaxMode> 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 TaxMode[] values() { 123 return TaxModeEnum.values(); 124 } 125 126}