From d8b4e91781c356b0128580267c3d97815ef149a1 Mon Sep 17 00:00:00 2001 From: jasper linschoten Date: Tue, 29 Aug 2023 16:15:54 +0200 Subject: [PATCH 1/3] Add support for 'with modifier' in java template --- boat-scaffold/src/main/templates/boat-java/pojo.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boat-scaffold/src/main/templates/boat-java/pojo.mustache b/boat-scaffold/src/main/templates/boat-java/pojo.mustache index 61f63e966..f9a238705 100644 --- a/boat-scaffold/src/main/templates/boat-java/pojo.mustache +++ b/boat-scaffold/src/main/templates/boat-java/pojo.mustache @@ -274,7 +274,7 @@ public {{classname}}() { {{#allVars}} {{#isOverridden}} @Override - public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) { + public {{classname}} {{#useWithModifiers}}with{{nameInCamelCase}}{{/useWithModifiers}}{{^useWithModifiers}}{{name}}{{/useWithModifiers}}({{{datatypeWithEnum}}} {{name}}) { {{#vendorExtensions.x-is-jackson-optional-nullable}} this.{{setter}}(JsonNullable.<{{{datatypeWithEnum}}}>of({{name}})); {{/vendorExtensions.x-is-jackson-optional-nullable}} From 069519744704eb846610168885d2c84282d44752 Mon Sep 17 00:00:00 2001 From: jasper linschoten Date: Wed, 30 Aug 2023 08:59:19 +0200 Subject: [PATCH 2/3] Also apply useWithModifier for methods that are not overridden. --- boat-scaffold/src/main/templates/boat-java/pojo.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boat-scaffold/src/main/templates/boat-java/pojo.mustache b/boat-scaffold/src/main/templates/boat-java/pojo.mustache index f9a238705..27013bc68 100644 --- a/boat-scaffold/src/main/templates/boat-java/pojo.mustache +++ b/boat-scaffold/src/main/templates/boat-java/pojo.mustache @@ -126,7 +126,7 @@ public {{classname}}() { {{#vars}} {{^isReadOnly}} - public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) { + public {{classname}} {{#useWithModifiers}}with{{nameInCamelCase}}{{/useWithModifiers}}{{^useWithModifiers}}{{name}}{{/useWithModifiers}}({{{datatypeWithEnum}}} {{name}}) { {{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}} {{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}} return this; From 19f7d9923635ccafab339a9ab5eb0dee5dc034c3 Mon Sep 17 00:00:00 2001 From: jasper linschoten Date: Wed, 30 Aug 2023 09:10:29 +0200 Subject: [PATCH 3/3] Add mention on change log and fix other entries. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4febf93a6..c12c09d03 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,9 @@ BOAT is still under development and subject to change. ## 0.17.12 * BoatJavaCodeGen, BoatSpringCodeGen - * Fix: [always generate collection initializer when array is required in the schema (even if containerDefaultToNull=true)](https://github.com/Backbase/backbase-openapi-tools/issues/615) + * Fix: Always generate collection initializer when array is required in the schema (even if containerDefaultToNull=true) + * Fix: [validated pojo referenced class causes invalid code to be generated](https://github.com/Backbase/backbase-openapi-tools/issues/615) + * Fix: boat-java pojo template to support `useWithModifier` to generate `withSomething` methods; fixes referencing 'common' classes generated using boat-spring templates. ## 0.17.11 * BoatJavaCodeGen, BoatSpringCodeGen * Fix: always generate collection initializer when array is required in the schema (even if containerDefaultToNull=true)