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  }