diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 826ae72230cf..554f98183fc7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -225,6 +225,8 @@ protected enum ENUM_PROPERTY_NAMING_TYPE {MACRO_CASE, legacy, original} @Setter protected boolean useJspecify; protected JSpecifyNullableLambda jSpecifyNullableLambda; + protected RemoveAnnotationLambda removeAnnotationLambda; + @Getter @Setter protected boolean useDeductionForOneOfInterfaces = false; @@ -706,9 +708,8 @@ public void processOpts() { } writer.write(content); }); - additionalProperties.put("removeAnnotations", (Mustache.Lambda) (fragment, writer) -> { - writer.write(removeAnnotations(fragment.execute())); - }); + this.removeAnnotationLambda = new RemoveAnnotationLambda(); + additionalProperties.put("removeAnnotations", removeAnnotationLambda); additionalProperties.put("sanitizeDataType", (Mustache.Lambda) (fragment, writer) -> { writer.write(sanitizeDataType(fragment.execute())); }); @@ -881,6 +882,8 @@ protected void applyJspecify() { (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator), "package-info.java")); } + // simplify mustache template for jspecify. @Nullable is kept + this.removeAnnotationLambda.keepAnnotation("@Nullable"); } @Override @@ -2076,6 +2079,7 @@ public void postProcessResponseWithProperty(CodegenResponse response, CodegenPro *

* For example: *