@@ -11,6 +11,9 @@ import com.fasterxml.jackson.annotation.JsonCreator;
1111import com.fasterxml.jackson.annotation.JsonValue;
1212import com.fasterxml.jackson.annotation.JsonTypeName;
1313{ {/jackson} }
14+ { {#openApiNullable} }
15+ import org.openapitools.jackson.nullable.JsonNullable;
16+ { {/openApiNullable} }
1417{ {#withXml} }
1518import { {javaxPackage} }.xml.bind.annotation.XmlElement;
1619import { {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