github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/jersey2-experimental/pojo.mustache (about)

     1  /**
     2   * {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}}
     3   */{{#description}}
     4  @ApiModel(description = "{{{description}}}"){{/description}}
     5  {{#jackson}}
     6  @JsonPropertyOrder({
     7  {{#vars}}
     8    {{classname}}.JSON_PROPERTY_{{nameInSnakeCase}}{{^-last}},{{/-last}}
     9  {{/vars}}
    10  })
    11  {{/jackson}}
    12  {{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{>xmlAnnotation}}
    13  public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{#-last}} {{/-last}}{{/vendorExtensions.x-implements}}{
    14  {{#serializableModel}}
    15    private static final long serialVersionUID = 1L;
    16  
    17  {{/serializableModel}}
    18    {{#vars}}
    19      {{#isEnum}}
    20      {{^isContainer}}
    21  {{>modelInnerEnum}}
    22      {{/isContainer}}
    23      {{#isContainer}}
    24      {{#mostInnerItems}}
    25  {{>modelInnerEnum}}
    26      {{/mostInnerItems}}
    27      {{/isContainer}}
    28      {{/isEnum}}
    29    {{#gson}}
    30    public static final String SERIALIZED_NAME_{{nameInSnakeCase}} = "{{baseName}}";
    31    {{/gson}}
    32    {{#jackson}}
    33    public static final String JSON_PROPERTY_{{nameInSnakeCase}} = "{{baseName}}";
    34    {{/jackson}}
    35    {{#withXml}}
    36    {{#isXmlAttribute}}
    37    @XmlAttribute(name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
    38    {{/isXmlAttribute}}
    39    {{^isXmlAttribute}}
    40      {{^isContainer}}
    41    @XmlElement({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
    42      {{/isContainer}}
    43      {{#isContainer}}
    44    // Is a container wrapped={{isXmlWrapped}}
    45        {{#items}}
    46    // items.name={{name}} items.baseName={{baseName}} items.xmlName={{xmlName}} items.xmlNamespace={{xmlNamespace}}
    47    // items.example={{example}} items.type={{dataType}}
    48    @XmlElement({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
    49        {{/items}}
    50        {{#isXmlWrapped}}
    51    @XmlElementWrapper({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
    52        {{/isXmlWrapped}}
    53      {{/isContainer}}
    54    {{/isXmlAttribute}}
    55    {{/withXml}}
    56    {{#gson}}
    57    @SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}})
    58    {{/gson}}
    59    {{#vendorExtensions.x-is-jackson-optional-nullable}}
    60    {{#isContainer}}
    61    private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();
    62    {{/isContainer}}
    63    {{^isContainer}}
    64    private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
    65    {{/isContainer}}
    66    {{/vendorExtensions.x-is-jackson-optional-nullable}}
    67    {{^vendorExtensions.x-is-jackson-optional-nullable}}
    68    {{#isContainer}}
    69    private {{{datatypeWithEnum}}} {{name}}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}} = null{{/required}};
    70    {{/isContainer}}
    71    {{^isContainer}}
    72    private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
    73    {{/isContainer}}
    74    {{/vendorExtensions.x-is-jackson-optional-nullable}}
    75  
    76    {{/vars}}
    77    {{#parcelableModel}}
    78    public {{classname}}() {
    79    {{#parent}}
    80      super();
    81    {{/parent}}
    82    {{#gson}}
    83    {{#discriminator}}
    84      this.{{{discriminatorName}}} = this.getClass().getSimpleName();
    85    {{/discriminator}}
    86    {{/gson}}
    87    }
    88    {{/parcelableModel}}
    89    {{^parcelableModel}}
    90    {{#gson}}
    91    {{#discriminator}}
    92    public {{classname}}() {
    93      this.{{{discriminatorName}}} = this.getClass().getSimpleName();
    94    }
    95    {{/discriminator}}
    96    {{/gson}}
    97    {{/parcelableModel}}
    98    {{#vars}}
    99  
   100    {{^isReadOnly}}
   101    public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
   102      {{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}}
   103      {{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}}
   104      return this;
   105    }
   106    {{#isArray}}
   107  
   108    public {{classname}} add{{nameInCamelCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) {
   109      {{#vendorExtensions.x-is-jackson-optional-nullable}}
   110      if (this.{{name}} == null || !this.{{name}}.isPresent()) {
   111        this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{{defaultValue}}});
   112      }
   113      try {
   114        this.{{name}}.get().add({{name}}Item);
   115      } catch (java.util.NoSuchElementException e) {
   116        // this can never happen, as we make sure above that the value is present
   117      }
   118      return this;
   119      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   120      {{^vendorExtensions.x-is-jackson-optional-nullable}}
   121      {{^required}}
   122      if (this.{{name}} == null) {
   123        this.{{name}} = {{{defaultValue}}};
   124      }
   125      {{/required}}
   126      this.{{name}}.add({{name}}Item);
   127      return this;
   128      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   129    }
   130    {{/isArray}}
   131    {{#isMap}}
   132  
   133    public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) {
   134      {{#vendorExtensions.x-is-jackson-optional-nullable}}
   135      if (this.{{name}} == null || !this.{{name}}.isPresent()) {
   136        this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{{defaultValue}}});
   137      }
   138      try {
   139        this.{{name}}.get().put(key, {{name}}Item);
   140      } catch (java.util.NoSuchElementException e) {
   141        // this can never happen, as we make sure above that the value is present
   142      }
   143      return this;
   144      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   145      {{^vendorExtensions.x-is-jackson-optional-nullable}}
   146      {{^required}}
   147      if (this.{{name}} == null) {
   148        this.{{name}} = {{{defaultValue}}};
   149      }
   150      {{/required}}
   151      this.{{name}}.put(key, {{name}}Item);
   152      return this;
   153      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   154    }
   155    {{/isMap}}
   156  
   157    {{/isReadOnly}}
   158     /**
   159    {{#description}}
   160     * {{description}}
   161    {{/description}}
   162    {{^description}}
   163     * Get {{name}}
   164    {{/description}}
   165    {{#minimum}}
   166     * minimum: {{minimum}}
   167    {{/minimum}}
   168    {{#maximum}}
   169     * maximum: {{maximum}}
   170    {{/maximum}}
   171     * @return {{name}}
   172    **/
   173  {{#required}}
   174  {{#isNullable}}
   175    @javax.annotation.Nullable
   176  {{/isNullable}}
   177  {{/required}}
   178  {{^required}}
   179    @javax.annotation.Nullable
   180  {{/required}}
   181  {{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}  @ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}")
   182  {{#vendorExtensions.x-extra-annotation}}
   183    {{{vendorExtensions.x-extra-annotation}}}
   184  {{/vendorExtensions.x-extra-annotation}}
   185  {{#vendorExtensions.x-is-jackson-optional-nullable}}
   186    {{!unannotated, Jackson would pick this up automatically and add it *in addition* to the _JsonNullable getter field}}
   187    @JsonIgnore
   188  {{/vendorExtensions.x-is-jackson-optional-nullable}}
   189  {{^vendorExtensions.x-is-jackson-optional-nullable}}{{#jackson}}{{> jackson_annotations}}{{/jackson}}{{/vendorExtensions.x-is-jackson-optional-nullable}}
   190    public {{{datatypeWithEnum}}} {{getter}}() {
   191      {{#vendorExtensions.x-is-jackson-optional-nullable}}
   192      {{#isReadOnly}}{{! A readonly attribute doesn't have setter => jackson will set null directly if explicitly returned by API, so make sure we have an empty JsonNullable}}
   193      if ({{name}} == null) {
   194        {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
   195      }
   196      {{/isReadOnly}}
   197      return {{name}}.orElse(null);
   198      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   199      {{^vendorExtensions.x-is-jackson-optional-nullable}}
   200      return {{name}};
   201      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   202    }
   203  
   204    {{#vendorExtensions.x-is-jackson-optional-nullable}}
   205  {{> jackson_annotations}}
   206    public JsonNullable<{{{datatypeWithEnum}}}> {{getter}}_JsonNullable() {
   207      return {{name}};
   208    }
   209    {{/vendorExtensions.x-is-jackson-optional-nullable}}{{#vendorExtensions.x-is-jackson-optional-nullable}}
   210    @JsonProperty(JSON_PROPERTY_{{nameInSnakeCase}})
   211    {{#isReadOnly}}private{{/isReadOnly}}{{^isReadOnly}}public{{/isReadOnly}} void {{setter}}_JsonNullable(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) {
   212      {{! For getters/setters that have name differing from attribute name, we must include setter (albeit private) for jackson to be able to set the attribute}}
   213      this.{{name}} = {{name}};
   214    }
   215    {{/vendorExtensions.x-is-jackson-optional-nullable}}
   216  
   217    {{^isReadOnly}}
   218    public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
   219      {{#vendorExtensions.x-is-jackson-optional-nullable}}
   220      this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
   221      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   222      {{^vendorExtensions.x-is-jackson-optional-nullable}}
   223      this.{{name}} = {{name}};
   224      {{/vendorExtensions.x-is-jackson-optional-nullable}}
   225    }
   226    {{/isReadOnly}}
   227  
   228    {{/vars}}
   229  
   230  {{^supportJava6}}
   231    @Override
   232    public boolean equals(java.lang.Object o) {
   233    {{#useReflectionEqualsHashCode}}
   234      return EqualsBuilder.reflectionEquals(this, o, false, null, true);
   235    {{/useReflectionEqualsHashCode}}
   236    {{^useReflectionEqualsHashCode}}
   237      if (this == o) {
   238        return true;
   239      }
   240      if (o == null || getClass() != o.getClass()) {
   241        return false;
   242      }{{#hasVars}}
   243      {{classname}} {{classVarName}} = ({{classname}}) o;
   244      return {{#vars}}{{#isByteArray}}Arrays{{/isByteArray}}{{^isByteArray}}Objects{{/isByteArray}}.equals(this.{{name}}, {{classVarName}}.{{name}}){{^-last}} &&
   245          {{/-last}}{{/vars}}{{#parent}} &&
   246          super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}}
   247      return {{#parent}}super.equals(o){{/parent}}{{^parent}}true{{/parent}};{{/hasVars}}
   248    {{/useReflectionEqualsHashCode}}
   249    }
   250  
   251    @Override
   252    public int hashCode() {
   253    {{#useReflectionEqualsHashCode}}
   254      return HashCodeBuilder.reflectionHashCode(this);
   255    {{/useReflectionEqualsHashCode}}
   256    {{^useReflectionEqualsHashCode}}
   257      return Objects.hash({{#vars}}{{^isByteArray}}{{name}}{{/isByteArray}}{{#isByteArray}}Arrays.hashCode({{name}}){{/isByteArray}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}});
   258    {{/useReflectionEqualsHashCode}}
   259    }
   260  
   261  {{/supportJava6}}
   262  {{#supportJava6}}
   263    @Override
   264    public boolean equals(java.lang.Object o) {
   265    if (this == o) {
   266      return true;
   267    }
   268    if (o == null || getClass() != o.getClass()) {
   269      return false;
   270    }{{#hasVars}}
   271      {{classname}} {{classVarName}} = ({{classname}}) o;
   272      return {{#vars}}ObjectUtils.equals(this.{{name}}, {{classVarName}}.{{name}}){{^-last}} &&
   273      {{/-last}}{{/vars}}{{#parent}} &&
   274      super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}}
   275      return true;{{/hasVars}}
   276    }
   277  
   278    @Override
   279    public int hashCode() {
   280      return ObjectUtils.hashCodeMulti({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}});
   281    }
   282  
   283  {{/supportJava6}}
   284  
   285    @Override
   286    public String toString() {
   287      StringBuilder sb = new StringBuilder();
   288      sb.append("class {{classname}} {\n");
   289      {{#parent}}
   290      sb.append("    ").append(toIndentedString(super.toString())).append("\n");
   291      {{/parent}}
   292      {{#vars}}
   293      sb.append("    {{name}}: ").append(toIndentedString({{name}})).append("\n");
   294      {{/vars}}
   295      sb.append("}");
   296      return sb.toString();
   297    }
   298  
   299    /**
   300     * Convert the given object to string with each line indented by 4 spaces
   301     * (except the first line).
   302     */
   303    private String toIndentedString(java.lang.Object o) {
   304      if (o == null) {
   305        return "null";
   306      }
   307      return o.toString().replace("\n", "\n    ");
   308    }
   309  
   310  {{#parcelableModel}}
   311  
   312    public void writeToParcel(Parcel out, int flags) {
   313  {{#model}}
   314  {{#isArrayModel}}
   315      out.writeList(this);
   316  {{/isArrayModel}}
   317  {{^isArrayModel}}
   318  {{#parent}}
   319      super.writeToParcel(out, flags);
   320  {{/parent}}
   321  {{#vars}}
   322      out.writeValue({{name}});
   323  {{/vars}}
   324  {{/isArrayModel}}
   325  {{/model}}
   326    }
   327  
   328    {{classname}}(Parcel in) {
   329  {{#isArrayModel}}
   330      in.readTypedList(this, {{arrayModelType}}.CREATOR);
   331  {{/isArrayModel}}
   332  {{^isArrayModel}}
   333  {{#parent}}
   334      super(in);
   335  {{/parent}}
   336  {{#vars}}
   337  {{#isPrimitiveType}}
   338      {{name}} = ({{{datatypeWithEnum}}})in.readValue(null);
   339  {{/isPrimitiveType}}
   340  {{^isPrimitiveType}}
   341      {{name}} = ({{{datatypeWithEnum}}})in.readValue({{complexType}}.class.getClassLoader());
   342  {{/isPrimitiveType}}
   343  {{/vars}}
   344  {{/isArrayModel}}
   345    }
   346  
   347    public int describeContents() {
   348      return 0;
   349    }
   350  
   351    public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() {
   352      public {{classname}} createFromParcel(Parcel in) {
   353  {{#model}}
   354  {{#isArrayModel}}
   355        {{classname}} result = new {{classname}}();
   356        result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader()));
   357        return result;
   358  {{/isArrayModel}}
   359  {{^isArrayModel}}
   360        return new {{classname}}(in);
   361  {{/isArrayModel}}
   362  {{/model}}
   363      }
   364      public {{classname}}[] newArray(int size) {
   365        return new {{classname}}[size];
   366      }
   367    };
   368  {{/parcelableModel}}
   369  }