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 }