Skip to content

Commit 6dcfadd

Browse files
committed
Support JsonNullable in JaxRS-spec
1 parent 8a4246c commit 6dcfadd

File tree

1 file changed

+30
-0
lines changed
  • modules/openapi-generator/src/main/resources/JavaJaxRS/spec

1 file changed

+30
-0
lines changed

modules/openapi-generator/src/main/resources/JavaJaxRS/spec/pojo.mustache

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ import com.fasterxml.jackson.annotation.JsonCreator;
1111
import com.fasterxml.jackson.annotation.JsonValue;
1212
import com.fasterxml.jackson.annotation.JsonTypeName;
1313
{{/jackson}}
14+
{{#openApiNullable}}
15+
import org.openapitools.jackson.nullable.JsonNullable;
16+
{{/openApiNullable}}
1417
{{#withXml}}
1518
import {{javaxPackage}}.xml.bind.annotation.XmlElement;
1619
import {{javaxPackage}}.xml.bind.annotation.XmlRootElement;
@@ -47,7 +50,17 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
4750
{{#vendorExtensions.x-field-extra-annotation}}
4851
{{{.}}}
4952
{{/vendorExtensions.x-field-extra-annotation}}
53+
{{#vendorExtensions.x-is-jackson-optional-nullable}}
54+
{{#isContainer}}
55+
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();
56+
{{/isContainer}}
57+
{{^isContainer}}
58+
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
59+
{{/isContainer}}
60+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
61+
{{^vendorExtensions.x-is-jackson-optional-nullable}}
5062
private {{#isContainer}}{{#useBeanValidation}}@Valid {{/useBeanValidation}}{{/isContainer}}{{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
63+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
5164
{{/vars}}
5265

5366
{{#generateBuilders}}
@@ -105,7 +118,12 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
105118
{{/maximum}}
106119
**/
107120
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
121+
{{#vendorExtensions.x-is-jackson-optional-nullable}}
122+
this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
123+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
124+
{{^vendorExtensions.x-is-jackson-optional-nullable}}
108125
this.{{name}} = {{name}};
126+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
109127
return this;
110128
}
111129

@@ -117,16 +135,28 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
117135
@Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}description = "{{{description}}}"){{/useSwaggerV3Annotations}}{{#useMicroProfileOpenAPIAnnotations}}
118136
@org.eclipse.microprofile.openapi.annotations.media.Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}description = "{{{description}}}"){{/useMicroProfileOpenAPIAnnotations}}
119137
{{#jackson}}@JsonProperty({{#required}}required = {{required}}, value = {{/required}}"{{baseName}}"){{/jackson}}
138+
{{#vendorExtensions.x-is-jackson-optional-nullable}}
139+
public JsonNullable<{{{datatypeWithEnum}}}> {{getter}}() {
140+
return {{name}};
141+
}
142+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
143+
{{^vendorExtensions.x-is-jackson-optional-nullable}}
120144
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}public {{>beanValidatedType}} {{getter}}() {
121145
return {{name}};
122146
}
147+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
123148

124149
{{#jackson}}
125150
@JsonProperty({{#required}}required = {{required}}, value = {{/required}}"{{baseName}}")
126151
{{/jackson}}
127152
{{#vendorExtensions.x-setter-extra-annotation}}{{{vendorExtensions.x-setter-extra-annotation}}}
128153
{{/vendorExtensions.x-setter-extra-annotation}}public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
154+
{{#vendorExtensions.x-is-jackson-optional-nullable}}
155+
this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
156+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
157+
{{^vendorExtensions.x-is-jackson-optional-nullable}}
129158
this.{{name}} = {{name}};
159+
{{/vendorExtensions.x-is-jackson-optional-nullable}}
130160
}
131161

132162
{{#isArray}}

0 commit comments

Comments
 (0)