diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache index d8dd7cd3839..dbd74e348ca 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/native/pojo.mustache @@ -267,6 +267,23 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens {{/vars}} {{>libraries/native/additional_properties}} + {{#parent}} + {{#allVars}} + {{#isOverridden}} + @Override + public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) { + {{#vendorExtensions.x-is-jackson-optional-nullable}} + this.{{setter}}(JsonNullable.<{{{datatypeWithEnum}}}>of({{name}})); + {{/vendorExtensions.x-is-jackson-optional-nullable}} + {{^vendorExtensions.x-is-jackson-optional-nullable}} + this.{{setter}}({{name}}); + {{/vendorExtensions.x-is-jackson-optional-nullable}} + return this; + } + + {{/isOverridden}} + {{/allVars}} + {{/parent}} /** * Return true if this {{name}} object is equal to o. */ diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index b4f7a8ca460..f6f599d9cc3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -1954,4 +1954,32 @@ public class JavaClientCodegenTest { " public Pet petType(String petType) {\n"); } -} \ No newline at end of file + + @Test + public void testForJavaNativeClientOverrideSetter() throws IOException { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + String outputPath = output.getAbsolutePath().replace('\\', '/'); + OpenAPI openAPI = new OpenAPIParser() + .readLocation("src/test/resources/3_0/allOf_composition_discriminator.yaml", null, new ParseOptions()).getOpenAPI(); + + JavaClientCodegen codegen = new JavaClientCodegen(); + codegen.setOutputDir(output.getAbsolutePath()); + + ClientOptInput input = new ClientOptInput(); + input.openAPI(openAPI); + input.config(codegen); + + DefaultGenerator generator = new DefaultGenerator(); + codegen.setLibrary(JavaClientCodegen.NATIVE); + + generator.opts(input).generate(); + + assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/client/model/Cat.java"), " @Override\n" + + " public Cat petType(String petType) {"); + assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/client/model/Pet.java"), " }\n" + + "\n" + + " public Pet petType(String petType) {\n"); + + } +} diff --git a/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/model/DataQuery.java b/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/model/DataQuery.java index 23fd24cf179..f38b803dc81 100644 --- a/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/model/DataQuery.java +++ b/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/model/DataQuery.java @@ -129,6 +129,18 @@ public class DataQuery extends Query { } + @Override + public DataQuery id(Long id) { + this.setId(id); + return this; + } + + @Override + public DataQuery outcomes(List outcomes) { + this.setOutcomes(outcomes); + return this; + } + /** * Return true if this DataQuery object is equal to o. */ diff --git a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Cat.java index 8b85a7bb108..6c3b20b091e 100644 --- a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Cat.java @@ -78,6 +78,18 @@ public class Cat extends Animal { } + @Override + public Cat className(String className) { + this.setClassName(className); + return this; + } + + @Override + public Cat color(String color) { + this.setColor(color); + return this; + } + /** * Return true if this Cat object is equal to o. */ diff --git a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Dog.java index e46cae8e00e..7fd17f897a6 100644 --- a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/Dog.java @@ -78,6 +78,18 @@ public class Dog extends Animal { } + @Override + public Dog className(String className) { + this.setClassName(className); + return this; + } + + @Override + public Dog color(String color) { + this.setColor(color); + return this; + } + /** * Return true if this Dog object is equal to o. */ diff --git a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/ParentPet.java b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/ParentPet.java index 1ea01ee0938..7b3ac1af02a 100644 --- a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/ParentPet.java +++ b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/model/ParentPet.java @@ -52,6 +52,12 @@ public class ParentPet extends GrandparentAnimal { public ParentPet() { } + @Override + public ParentPet petType(String petType) { + this.setPetType(petType); + return this; + } + /** * Return true if this ParentPet object is equal to o. */ diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Cat.java index 8b85a7bb108..6c3b20b091e 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Cat.java @@ -78,6 +78,18 @@ public class Cat extends Animal { } + @Override + public Cat className(String className) { + this.setClassName(className); + return this; + } + + @Override + public Cat color(String color) { + this.setColor(color); + return this; + } + /** * Return true if this Cat object is equal to o. */ diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Dog.java index e46cae8e00e..7fd17f897a6 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/Dog.java @@ -78,6 +78,18 @@ public class Dog extends Animal { } + @Override + public Dog className(String className) { + this.setClassName(className); + return this; + } + + @Override + public Dog color(String color) { + this.setColor(color); + return this; + } + /** * Return true if this Dog object is equal to o. */ diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/ParentPet.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/ParentPet.java index 1ea01ee0938..7b3ac1af02a 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/ParentPet.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/model/ParentPet.java @@ -52,6 +52,12 @@ public class ParentPet extends GrandparentAnimal { public ParentPet() { } + @Override + public ParentPet petType(String petType) { + this.setPetType(petType); + return this; + } + /** * Return true if this ParentPet object is equal to o. */