github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/modelEnum.mustache (about) 1 {{#jackson}} 2 import com.fasterxml.jackson.annotation.JsonCreator; 3 import com.fasterxml.jackson.annotation.JsonValue; 4 {{/jackson}} 5 {{#gson}} 6 import java.io.IOException; 7 import com.google.gson.TypeAdapter; 8 import com.google.gson.annotations.JsonAdapter; 9 import com.google.gson.stream.JsonReader; 10 import com.google.gson.stream.JsonWriter; 11 {{/gson}} 12 13 /** 14 * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} 15 */ 16 {{#gson}} 17 @JsonAdapter({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.Adapter.class) 18 {{/gson}} 19 public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} { 20 {{#allowableValues}}{{#enumVars}} 21 {{#enumDescription}} 22 /** 23 * {{enumDescription}} 24 */ 25 {{/enumDescription}} 26 {{{name}}}({{{value}}}){{^-last}}, 27 {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} 28 29 private {{{dataType}}} value; 30 31 {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}({{{dataType}}} value) { 32 this.value = value; 33 } 34 35 {{#jackson}} 36 @JsonValue 37 {{/jackson}} 38 public {{{dataType}}} getValue() { 39 return value; 40 } 41 42 @Override 43 public String toString() { 44 return String.valueOf(value); 45 } 46 47 {{#jackson}} 48 @JsonCreator 49 {{/jackson}} 50 public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue({{{dataType}}} value) { 51 for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { 52 if (b.value.equals(value)) { 53 return b; 54 } 55 } 56 {{#isNullable}}return null;{{/isNullable}}{{^isNullable}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/isNullable}} 57 } 58 {{#gson}} 59 60 public static class Adapter extends TypeAdapter<{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}> { 61 @Override 62 public void write(final JsonWriter jsonWriter, final {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} enumeration) throws IOException { 63 jsonWriter.value(enumeration.getValue()); 64 } 65 66 @Override 67 public {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException { 68 {{^isNumber}}{{{dataType}}}{{/isNumber}}{{#isNumber}}String{{/isNumber}} value = jsonReader.{{#isNumber}}nextString(){{/isNumber}}{{#isInteger}}nextInt(){{/isInteger}}{{^isNumber}}{{^isInteger}}next{{{dataType}}}(){{/isInteger}}{{/isNumber}}; 69 return {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.fromValue({{#isNumber}}new BigDecimal({{/isNumber}}value{{#isNumber}}){{/isNumber}}); 70 } 71 } 72 {{/gson}} 73 }