Skip to content

Commit 9e98c52

Browse files
committed
Some cleanup and comments
1 parent ccf5c09 commit 9e98c52

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2692,21 +2692,26 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
26922692
// use cases:
26932693
//
26942694
// private {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{param}}
2695+
// ->
26952696
// private @Nullable Time param
26962697
// private java.time.@Nullable Time
26972698
// private Time param
26982699
//
26992700
// {{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}} {{param}}
2701+
// ->
27002702
// @Nullable Time param
27012703
// java.time.@Nullable Time
27022704
// Time param
27032705
//
27042706
// {{#lambda.jSpecifyNullable}}@Nullable {{/lambda.jSpecifyNullable}}{{#lambda.jSpecifyDatatype}}{{{dataType}}}{{/lambda.jSpecifyDatatype}}
2707+
// ->
27052708
// @Nullable Time
27062709
// @java.time.@Nullable Time
2710+
// Time
2711+
27072712
Mustache.Lambda jSpecifyDatatypeLambda = (fragment, writer) -> {
27082713
String dataType = fragment.execute();
2709-
if (jSpecifyNullableLambda.keptNullable != null ) {
2714+
if (jSpecifyNullableLambda.isSetAndClear()) {
27102715
int idx = dataType.lastIndexOf('.');
27112716
if (idx > 0) {
27122717
// generate declaration like java.time.@Nullable Timestamp
@@ -2717,7 +2722,6 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
27172722
writer.write("@Nullable ");
27182723
writer.write(dataType);
27192724
}
2720-
jSpecifyNullableLambda.keptNullable = null;
27212725
} else {
27222726
writer.write(dataType);
27232727
// writer.write(" ");
@@ -2734,9 +2738,14 @@ protected ImmutableMap.Builder<String, Mustache.Lambda> addMustacheLambdas() {
27342738
*/
27352739
class JSpecifyNullableLambda implements Mustache.Lambda {
27362740
private String nullableAnnotation = "@Nullable";
2737-
// remember if @Nullable is needed
2738-
String keptNullable = null;
2739-
2741+
// remember @Nullable annotation value when jspecify is used.
2742+
private String keptNullable = null;
2743+
2744+
/**
2745+
* Override default nullable annotation, for example with a full qualified className
2746+
*
2747+
* @param nullableAnnotation annotation used by the generator, for example @jakarta.annotation.Nullable
2748+
*/
27402749
public void setNullableAnnotation(String nullableAnnotation) {
27412750
this.nullableAnnotation = nullableAnnotation;
27422751
}
@@ -2758,6 +2767,12 @@ public void execute(Template.Fragment fragment, Writer writer) throws IOExceptio
27582767
}
27592768
writer.write(value);
27602769
}
2770+
2771+
public boolean isSetAndClear() {
2772+
boolean isSet = keptNullable != null;
2773+
keptNullable = null;
2774+
return isSet;
2775+
}
27612776
}
27622777

27632778
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4255,7 +4255,7 @@ public Object[][] jspecifyLibraries() {
42554255
}
42564256

42574257
@Test(dataProvider = "jspecifyLibraries")
4258-
public void testJspecify(String library, Boolean useSpringBoot4, boolean hasJspecifyDependency) throws IOException {
4258+
public void testJspecify(String library, boolean useSpringBoot4, boolean hasJspecifyDependency) throws IOException {
42594259
final Map<String, File> files = generateFromContract("src/test/resources/3_0/java/jspecify.yaml", library,
42604260
Map.of(USE_JSPECIFY, true,
42614261
"containerDefaultToNull", true,

0 commit comments

Comments
 (0)