Skip to content

Commit 65b1859

Browse files
authored
Add nullability annotations to Java generated clients (#19617)
* issue-1960: Add nullability annotations to Java generated clients Motivations: Have generated clients properly annotated for nullability to be able to check code using them with tools like NullAway Modifications: * Add nullable_var_annotations template to handle nullability annotation on vars * Add pojo templates to use the nullability template * Adapt tests * issue-1960: Add nullability annotations to Java generated clients Modifications: * Run export_docs_generator.sh script to update samples
1 parent 8f7d9f7 commit 65b1859

File tree

1,582 files changed

+14871
-9980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,582 files changed

+14871
-9980
lines changed

modules/openapi-generator/src/main/resources/Java/libraries/feign/pojo.mustache

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
7272
{{/isContainer}}
7373
{{/vendorExtensions.x-is-jackson-optional-nullable}}
7474
{{^vendorExtensions.x-is-jackson-optional-nullable}}
75+
{{>nullable_var_annotations}}
7576
{{#isContainer}}
7677
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
7778
{{/isContainer}}
@@ -113,7 +114,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
113114
{{#vars}}
114115

115116
{{^isReadOnly}}
116-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
117+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
117118
{{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}}
118119
{{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}}
119120
return this;
@@ -189,17 +190,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
189190
{{#deprecated}}
190191
@Deprecated
191192
{{/deprecated}}
192-
{{#required}}
193-
{{#isNullable}}
194-
@{{javaxPackage}}.annotation.Nullable
195-
{{/isNullable}}
196-
{{^isNullable}}
197-
@{{javaxPackage}}.annotation.Nonnull
198-
{{/isNullable}}
199-
{{/required}}
200-
{{^required}}
201-
@{{javaxPackage}}.annotation.Nullable
202-
{{/required}}
193+
{{>nullable_var_annotations}}
203194
{{#jsonb}}
204195
@JsonbProperty("{{baseName}}")
205196
{{/jsonb}}
@@ -246,7 +237,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
246237
247238
{{^isReadOnly}}
248239
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
249-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
240+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
250241
{{#vendorExtensions.x-is-jackson-optional-nullable}}
251242
this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
252243
{{/vendorExtensions.x-is-jackson-optional-nullable}}

modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pojo.mustache

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
8181
{{#deprecated}}
8282
@Deprecated
8383
{{/deprecated}}
84+
{{>nullable_var_annotations}}
8485
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
8586
{{/vendorExtensions.x-is-jackson-optional-nullable}}
8687

@@ -113,7 +114,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
113114
{{#deprecated}}
114115
@Deprecated
115116
{{/deprecated}}
116-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
117+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
117118
{{#vendorExtensions.x-enum-as-string}}
118119
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
119120
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -197,17 +198,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
197198
{{#deprecated}}
198199
@Deprecated
199200
{{/deprecated}}
200-
{{#required}}
201-
{{#isNullable}}
202-
@{{javaxPackage}}.annotation.Nullable
203-
{{/isNullable}}
204-
{{^isNullable}}
205-
@{{javaxPackage}}.annotation.Nonnull
206-
{{/isNullable}}
207-
{{/required}}
208-
{{^required}}
209-
@{{javaxPackage}}.annotation.Nullable
210-
{{/required}}
201+
{{>nullable_var_annotations}}
211202
{{#useBeanValidation}}
212203
{{>beanValidation}}
213204
{{/useBeanValidation}}
@@ -257,7 +248,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
257248
@Deprecated
258249
{{/deprecated}}
259250
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
260-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
251+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
261252
{{#vendorExtensions.x-enum-as-string}}
262253
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
263254
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));

modules/openapi-generator/src/main/resources/Java/libraries/jersey3/pojo.mustache

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
8181
{{#deprecated}}
8282
@Deprecated
8383
{{/deprecated}}
84+
{{>nullable_var_annotations}}
8485
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
8586
{{/vendorExtensions.x-is-jackson-optional-nullable}}
8687

@@ -113,7 +114,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
113114
{{#deprecated}}
114115
@Deprecated
115116
{{/deprecated}}
116-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
117+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
117118
{{#vendorExtensions.x-enum-as-string}}
118119
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
119120
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -197,17 +198,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
197198
{{#deprecated}}
198199
@Deprecated
199200
{{/deprecated}}
200-
{{#required}}
201-
{{#isNullable}}
202-
@{{javaxPackage}}.annotation.Nullable
203-
{{/isNullable}}
204-
{{^isNullable}}
205-
@{{javaxPackage}}.annotation.Nonnull
206-
{{/isNullable}}
207-
{{/required}}
208-
{{^required}}
209-
@{{javaxPackage}}.annotation.Nullable
210-
{{/required}}
201+
{{>nullable_var_annotations}}
211202
{{#useBeanValidation}}
212203
{{>beanValidation}}
213204
{{/useBeanValidation}}
@@ -257,7 +248,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
257248
@Deprecated
258249
{{/deprecated}}
259250
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
260-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
251+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
261252
{{#vendorExtensions.x-enum-as-string}}
262253
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
263254
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));

modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
7575
{{/isContainer}}
7676
{{/vendorExtensions.x-is-jackson-optional-nullable}}
7777
{{^vendorExtensions.x-is-jackson-optional-nullable}}
78+
{{>nullable_var_annotations}}
7879
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
7980
{{/vendorExtensions.x-is-jackson-optional-nullable}}
8081

@@ -104,7 +105,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
104105
));
105106

106107
{{/vendorExtensions.x-enum-as-string}}
107-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
108+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
108109
{{#vendorExtensions.x-enum-as-string}}
109110
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
110111
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -188,17 +189,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
188189
{{#deprecated}}
189190
@Deprecated
190191
{{/deprecated}}
191-
{{#required}}
192-
{{#isNullable}}
193-
@{{javaxPackage}}.annotation.Nullable
194-
{{/isNullable}}
195-
{{^isNullable}}
196-
@{{javaxPackage}}.annotation.Nonnull
197-
{{/isNullable}}
198-
{{/required}}
199-
{{^required}}
200-
@{{javaxPackage}}.annotation.Nullable
201-
{{/required}}
192+
{{>nullable_var_annotations}}
202193
{{#useBeanValidation}}
203194
{{>beanValidation}}
204195
{{/useBeanValidation}}
@@ -244,7 +235,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
244235
245236
{{^isReadOnly}}
246237
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
247-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
238+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
248239
{{#vendorExtensions.x-enum-as-string}}
249240
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
250241
throw new IllegalArgumentException({{name}} + " is invalid. Possible values for {{name}}: " + String.join(", ", {{{nameInSnakeCase}}}_VALUES));
@@ -266,7 +257,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
266257
{{#allVars}}
267258
{{#isOverridden}}
268259
@Override
269-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
260+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
270261
{{#vendorExtensions.x-is-jackson-optional-nullable}}
271262
this.{{setter}}(JsonNullable.<{{{datatypeWithEnum}}}>of({{name}}));
272263
{{/vendorExtensions.x-is-jackson-optional-nullable}}

modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pojo.mustache

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
7070
{{#vendorExtensions.x-field-extra-annotation}}
7171
{{{vendorExtensions.x-field-extra-annotation}}}
7272
{{/vendorExtensions.x-field-extra-annotation}}
73+
{{>nullable_var_annotations}}
7374
{{#isDiscriminator}}protected{{/isDiscriminator}}{{^isDiscriminator}}private{{/isDiscriminator}} {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
7475

7576
{{/vars}}
@@ -106,7 +107,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
106107
{{#deprecated}}
107108
@Deprecated
108109
{{/deprecated}}
109-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
110+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
110111
this.{{name}} = {{name}};
111112
return this;
112113
}
@@ -153,17 +154,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
153154
{{#deprecated}}
154155
@Deprecated
155156
{{/deprecated}}
156-
{{#required}}
157-
{{#isNullable}}
158-
@{{javaxPackage}}.annotation.Nullable
159-
{{/isNullable}}
160-
{{^isNullable}}
161-
@{{javaxPackage}}.annotation.Nonnull
162-
{{/isNullable}}
163-
{{/required}}
164-
{{^required}}
165-
@{{javaxPackage}}.annotation.Nullable
166-
{{/required}}
157+
{{>nullable_var_annotations}}
167158
{{#useBeanValidation}}
168159
{{>beanValidation}}
169160
{{/useBeanValidation}}
@@ -183,7 +174,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
183174
{{^isReadOnly}}
184175
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
185176
{{/vendorExtensions.x-setter-extra-annotation}}{{#deprecated}} @Deprecated
186-
{{/deprecated}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
177+
{{/deprecated}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
187178
this.{{name}} = {{name}};
188179
}
189180
{{/isReadOnly}}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{#required}}{{#isNullable}}@{{javaxPackage}}.annotation.Nullable{{/isNullable}}{{^isNullable}}@{{javaxPackage}}.annotation.Nonnull{{/isNullable}}{{/required}}{{^required}}@{{javaxPackage}}.annotation.Nullable{{/required}}

modules/openapi-generator/src/main/resources/Java/pojo.mustache

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
6565
{{#gson}}
6666
@SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}})
6767
{{/gson}}
68+
{{>nullable_var_annotations}}
6869
{{#vendorExtensions.x-field-extra-annotation}}
6970
{{{vendorExtensions.x-field-extra-annotation}}}
7071
{{/vendorExtensions.x-field-extra-annotation}}
@@ -134,7 +135,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
134135

135136
{{#vars}}
136137
{{^isReadOnly}}
137-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
138+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
138139
{{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}}
139140
{{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}}
140141
return this;
@@ -210,17 +211,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
210211
{{#deprecated}}
211212
@Deprecated
212213
{{/deprecated}}
213-
{{#required}}
214-
{{#isNullable}}
215-
@{{javaxPackage}}.annotation.Nullable
216-
{{/isNullable}}
217-
{{^isNullable}}
218-
@{{javaxPackage}}.annotation.Nonnull
219-
{{/isNullable}}
220-
{{/required}}
221-
{{^required}}
222-
@{{javaxPackage}}.annotation.Nullable
223-
{{/required}}
214+
{{>nullable_var_annotations}}
224215
{{#jsonb}}
225216
@JsonbProperty("{{baseName}}")
226217
{{/jsonb}}
@@ -270,7 +261,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
270261
271262
{{^isReadOnly}}
272263
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
273-
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
264+
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
274265
{{#vendorExtensions.x-is-jackson-optional-nullable}}
275266
this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
276267
{{/vendorExtensions.x-is-jackson-optional-nullable}}
@@ -285,7 +276,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
285276
{{#readWriteVars}}
286277
{{#isOverridden}}
287278
@Override
288-
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
279+
public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) {
289280
{{#vendorExtensions.x-is-jackson-optional-nullable}}
290281
this.{{setter}}(JsonNullable.<{{{datatypeWithEnum}}}>of({{name}}));
291282
{{/vendorExtensions.x-is-jackson-optional-nullable}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,9 +1954,9 @@ private static Map<String, File> generateFromContract(
19541954
new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)).generate();
19551955

19561956
assertThat(output.resolve("src/main/java/org/openapitools/client/model/Cat.java")).content()
1957-
.contains(" @Override\n" + " public Cat petType(String petType) {");
1957+
.contains(" @Override\n" + " public Cat petType(@javax.annotation.Nonnull String petType) {");
19581958
assertThat(output.resolve("src/main/java/org/openapitools/client/model/Pet.java")).content()
1959-
.contains(" }\n" + "\n" + " public Pet petType(String petType) {\n");
1959+
.contains(" }\n" + "\n" + " public Pet petType(@javax.annotation.Nonnull String petType) {\n");
19601960
}
19611961

19621962
@Test public void testForJavaNativeClientOverrideSetter() {
@@ -1971,9 +1971,9 @@ private static Map<String, File> generateFromContract(
19711971
new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)).generate();
19721972

19731973
assertThat(output.resolve("src/main/java/org/openapitools/client/model/Cat.java")).content()
1974-
.contains(" @Override\n" + " public Cat petType(String petType) {");
1974+
.contains(" @Override\n" + " public Cat petType(@javax.annotation.Nonnull String petType) {");
19751975
assertThat(output.resolve("src/main/java/org/openapitools/client/model/Pet.java")).content()
1976-
.contains(" }\n" + "\n" + " public Pet petType(String petType) {\n");
1976+
.contains(" }\n" + "\n" + " public Pet petType(@javax.annotation.Nonnull String petType) {\n");
19771977
}
19781978

19791979
@Test public void testDeprecatedProperty() {
@@ -1989,9 +1989,9 @@ private static Map<String, File> generateFromContract(
19891989
validateJavaSourceFiles(files);
19901990
TestUtils.assertFileContains(
19911991
output.resolve("src/main/java/org/openapitools/client/model/BigDog.java"),
1992-
"@Deprecated\n public BigDog declawed(Boolean declawed) {", // deprecated builder method
1992+
"@Deprecated\n public BigDog declawed(@javax.annotation.Nullable Boolean declawed) {", // deprecated builder method
19931993
"@Deprecated\n @javax.annotation.Nullable\n\n public Boolean getDeclawed() {", // deprecated getter
1994-
"@Deprecated\n" + " public void setDeclawed(Boolean declawed) {" // deprecated setter
1994+
"@Deprecated\n" + " public void setDeclawed(@javax.annotation.Nullable Boolean declawed) {" // deprecated setter
19951995
);
19961996
}
19971997

@@ -2008,13 +2008,13 @@ private static Map<String, File> generateFromContract(
20082008
validateJavaSourceFiles(files);
20092009
TestUtils.assertFileContains(
20102010
output.resolve("src/main/java/org/openapitools/client/model/BigDog.java"),
2011-
"@Deprecated\n public BigDog declawed(Boolean declawed) {", // deprecated builder method
2011+
"@Deprecated\n public BigDog declawed(@jakarta.annotation.Nullable Boolean declawed) {", // deprecated builder method
20122012
"@Deprecated\n @jakarta.annotation.Nullable\n @JsonProperty(JSON_PROPERTY_DECLAWED)\n"
20132013
+ " @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)\n\n"
20142014
+ " public Boolean getDeclawed() {", // deprecated getter
20152015
"@Deprecated\n @JsonProperty(JSON_PROPERTY_DECLAWED)\n"
20162016
+ " @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)\n"
2017-
+ " public void setDeclawed(Boolean declawed) {" // deprecated setter
2017+
+ " public void setDeclawed(@jakarta.annotation.Nullable Boolean declawed) {" // deprecated setter
20182018
);
20192019
}
20202020

samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/model/Bird.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,17 @@
3636
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.10.0-SNAPSHOT")
3737
public class Bird {
3838
public static final String JSON_PROPERTY_SIZE = "size";
39+
@javax.annotation.Nullable
3940
private String size;
4041

4142
public static final String JSON_PROPERTY_COLOR = "color";
43+
@javax.annotation.Nullable
4244
private String color;
4345

4446
public Bird() {
4547
}
4648

47-
public Bird size(String size) {
49+
public Bird size(@javax.annotation.Nullable String size) {
4850

4951
this.size = size;
5052
return this;
@@ -65,11 +67,11 @@ public String getSize() {
6567

6668
@JsonProperty(JSON_PROPERTY_SIZE)
6769
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
68-
public void setSize(String size) {
70+
public void setSize(@javax.annotation.Nullable String size) {
6971
this.size = size;
7072
}
7173

72-
public Bird color(String color) {
74+
public Bird color(@javax.annotation.Nullable String color) {
7375

7476
this.color = color;
7577
return this;
@@ -90,7 +92,7 @@ public String getColor() {
9092

9193
@JsonProperty(JSON_PROPERTY_COLOR)
9294
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
93-
public void setColor(String color) {
95+
public void setColor(@javax.annotation.Nullable String color) {
9496
this.color = color;
9597
}
9698

0 commit comments

Comments
 (0)