Skip to content

[java][spring] Process fields of POJOs recursively #19630

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 64 commits into from
Closed
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
4cc2ae3
1) Implement recursive processing
DatApplePy Sep 17, 2024
bbff5e9
Rework generation of variables and methods
DatApplePy Sep 17, 2024
6b81f06
Exclude date and dateTime
DatApplePy Sep 17, 2024
91e02c8
Loosen the generation of NotNull
DatApplePy Sep 17, 2024
2d183e8
Merge branch 'refs/heads/master' into fix_issue_19601
DatApplePy Sep 17, 2024
942aced
1) Change restriction of NotNull 2) add @Valid if the schema is a model
DatApplePy Sep 20, 2024
e7966f2
Collapse it into one line to generate readable code
DatApplePy Sep 20, 2024
003b5ed
Generate annotations for fields
DatApplePy Sep 20, 2024
6d682e7
Introduce vendorTags to define custom validation error messages
DatApplePy Sep 20, 2024
132352f
Fix issues caused by the changes
DatApplePy Sep 20, 2024
b913813
1) Add newly introduced vendor tags to the documentation
DatApplePy Sep 20, 2024
e2d64ea
Merge branch 'refs/heads/master' into fix_issue_19601
DatApplePy Sep 20, 2024
1a6572f
Update samples
DatApplePy Sep 24, 2024
bd5f4cf
Add new tags to VendorExtension
DatApplePy Sep 24, 2024
81631ed
Revert spring.md and add new vendor tags
DatApplePy Sep 24, 2024
e632b94
Add new vendor tags to supported extensions
DatApplePy Sep 24, 2024
b9b0de0
Update docs
DatApplePy Sep 24, 2024
3e496c0
Update java camel samples
DatApplePy Sep 24, 2024
b5ae78b
Fix git diff
DatApplePy Sep 24, 2024
aaaa906
Update pojo.mustache based on Spring pojo.mustache
DatApplePy Sep 24, 2024
6971193
Update Java Camel samples
DatApplePy Sep 24, 2024
66b7e24
Changes in javaBuilder to use nullableDataType template
DatApplePy Sep 25, 2024
e194ab3
Update Spring samples
DatApplePy Sep 25, 2024
32de2e1
Revert "Update Spring samples"
DatApplePy Sep 28, 2024
a941255
Revert "Update Java Camel samples"
DatApplePy Sep 28, 2024
0a653fc
Revert "Fix git diff"
DatApplePy Sep 28, 2024
86ffc1e
Revert "Update java camel samples"
DatApplePy Sep 28, 2024
12296dc
Revert "Update docs"
DatApplePy Sep 28, 2024
19e87ab
Revert "Revert spring.md and add new vendor tags"
DatApplePy Sep 28, 2024
6015911
Revert "Update samples"
DatApplePy Sep 28, 2024
a8d0d8a
Revert "1) Add newly introduced vendor tags to the documentation"
DatApplePy Sep 28, 2024
50b9d14
Add extension for `@NotNull` and remove extension for `@DecimalMin` a…
DatApplePy Sep 28, 2024
de3f970
Rework abstraction for getTypeDeclaration (explanation in PR comment)
DatApplePy Sep 28, 2024
4290634
Rework generation of request parameters and response
DatApplePy Sep 28, 2024
21b79df
Fix minor issues caused by changes and refactor som of the cases
DatApplePy Sep 28, 2024
40414fd
Regenerate samples
DatApplePy Sep 28, 2024
36abb34
Regenerate samples
DatApplePy Sep 28, 2024
248fb3a
Regenerate docs
DatApplePy Sep 28, 2024
bd4cd66
Revert "Regenerate samples"
DatApplePy Oct 3, 2024
c520cfe
Revert "Regenerate samples"
DatApplePy Oct 3, 2024
3d8fdb8
Regenerate samples
DatApplePy Oct 3, 2024
e209bfe
Use responseType template
DatApplePy Oct 3, 2024
82a5edd
Remove use of datatypeWithEnum
DatApplePy Oct 3, 2024
c180170
Add `isResolvedEnum` as condition
DatApplePy Oct 6, 2024
6fd9c98
Add new attribute (isResolvedEnum)
DatApplePy Oct 6, 2024
7990f3a
Implement `clone` method
DatApplePy Oct 6, 2024
83a797b
Rework `clone` method to create real deep copy
DatApplePy Oct 6, 2024
ea43ca3
Wiring the use of `isResolvedEnum`
DatApplePy Oct 6, 2024
1aa9ccd
Revert "Regenerate samples"
DatApplePy Oct 6, 2024
4de6a82
Regenerate Spring samples
DatApplePy Oct 6, 2024
58a9c20
Regenerate Java samples
DatApplePy Oct 6, 2024
27ff736
Merge branch 'refs/heads/master' into fix_issue_19601
DatApplePy Oct 6, 2024
e292493
Regenerate Spring samples
DatApplePy Oct 7, 2024
c52e148
Refactor the implementation of OptionalFeatures
DatApplePy Oct 8, 2024
5ffee39
Handling the generation of Optional for default values
DatApplePy Oct 8, 2024
2a8a1fc
Fix: due to deep copying the `CodegenProperty` classes, `items` and `…
DatApplePy Oct 8, 2024
2437a1a
Revert "Fix: due to deep copying the `CodegenProperty` classes, `item…
DatApplePy Oct 10, 2024
b6809ae
Fix deep copying of Map fields using ObjectMapper
DatApplePy Oct 10, 2024
05328a2
Merge branch 'refs/heads/master' into fix_issue_19601
DatApplePy Oct 10, 2024
32a607e
Reapply "Fix: due to deep copying the `CodegenProperty` classes, `ite…
DatApplePy Oct 10, 2024
880f4ad
Add missing `vendorExtensions` prefix
DatApplePy Oct 11, 2024
74e6bd5
Tiny refactor
DatApplePy Oct 11, 2024
ad8ff51
Rename `x-min-message` and `x-max-message` to match OpenAPI Spec prop…
DatApplePy Oct 11, 2024
4dd6e51
Update docs
DatApplePy Oct 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
465 changes: 235 additions & 230 deletions docs/generators/spring.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#required}}{{^isReadOnly}}@NotNull {{/isReadOnly}}{{/required}}{{#isContainer}}{{^isPrimitiveType}}{{^isEnum}}@Valid {{/isEnum}}{{/isPrimitiveType}}{{/isContainer}}{{^isContainer}}{{^isPrimitiveType}}@Valid {{/isPrimitiveType}}{{/isContainer}}{{^openApiNullable}}{{>beanValidationCore}}{{/openApiNullable}}{{#openApiNullable}}{{^useOptional}}{{>beanValidationCore}}{{/useOptional}}{{/openApiNullable}}{{#useOptional}}{{#openApiNullable}}{{#isContainer}}{{^required}}{{>beanValidationCore}}{{/required}}{{/isContainer}}{{/openApiNullable}}{{#openApiNullable}}{{#required}}{{>beanValidationCore}}{{/required}}{{/openApiNullable}}{{/useOptional}}
{{#required}}{{^isNullable}}{{^isReadOnly}}@NotNull {{/isReadOnly}}{{/isNullable}}{{/required}}{{#isModel}}@Valid {{/isModel}}{{>beanValidationCore}}
Original file line number Diff line number Diff line change
@@ -1,24 +1 @@
{{^isUuid}}{{#pattern}}{{^isByteArray}}@Pattern(regexp = "{{{pattern}}}"{{#vendorExtensions.x-pattern-message}}, message="{{vendorExtensions.x-pattern-message}}"{{/vendorExtensions.x-pattern-message}}) {{/isByteArray}}{{/pattern}}{{!
minLength && maxLength set
}}{{#minLength}}{{#maxLength}}@Size(min = {{minLength}}, max = {{maxLength}}) {{/maxLength}}{{/minLength}}{{!
minLength set, maxLength not
}}{{#minLength}}{{^maxLength}}@Size(min = {{minLength}}) {{/maxLength}}{{/minLength}}{{!
minLength not set, maxLength set
}}{{^minLength}}{{#maxLength}}@Size(max = {{.}}) {{/maxLength}}{{/minLength}}{{!
@Size: minItems && maxItems set
}}{{#minItems}}{{#maxItems}}@Size(min = {{minItems}}, max = {{maxItems}}) {{/maxItems}}{{/minItems}}{{!
@Size: minItems set, maxItems not
}}{{#minItems}}{{^maxItems}}@Size(min = {{minItems}}) {{/maxItems}}{{/minItems}}{{!
@Size: minItems not set && maxItems set
}}{{^minItems}}{{#maxItems}}@Size(max = {{.}}) {{/maxItems}}{{/minItems}}{{!
@Email: useBeanValidation
}}{{#isEmail}}{{#useBeanValidation}}@{{javaxPackage}}.validation.constraints.Email {{/useBeanValidation}}{{!
@Email: performBeanValidation exclusive
}}{{^useBeanValidation}}{{#performBeanValidation}}@org.hibernate.validator.constraints.Email {{/performBeanValidation}}{{/useBeanValidation}}{{/isEmail}}{{!
check for integer or long / all others=decimal type with @Decimal*
isInteger set
}}{{#isInteger}}{{#minimum}}@Min({{.}}) {{/minimum}}{{#maximum}}@Max({{.}}) {{/maximum}}{{/isInteger}}{{!
isLong set
}}{{#isLong}}{{#minimum}}@Min({{.}}L) {{/minimum}}{{#maximum}}@Max({{.}}L) {{/maximum}}{{/isLong}}{{!
Not Integer, not Long => we have a decimal value!
}}{{^isInteger}}{{^isLong}}{{#minimum}}@DecimalMin({{#exclusiveMinimum}}value = {{/exclusiveMinimum}}"{{minimum}}"{{#exclusiveMinimum}}, inclusive = false{{/exclusiveMinimum}}) {{/minimum}}{{#maximum}}@DecimalMax({{#exclusiveMaximum}}value = {{/exclusiveMaximum}}"{{maximum}}"{{#exclusiveMaximum}}, inclusive = false{{/exclusiveMaximum}}) {{/maximum}}{{/isLong}}{{/isInteger}}{{/isUuid}}
{{^isUuid}}{{^isDate}}{{^isDateTime}}{{#pattern}}{{^isByteArray}}@Pattern(regexp = "{{{pattern}}}"{{#vendorExtensions.x-pattern-message}}, message="{{{vendorExtensions.x-pattern-message}}}"{{/vendorExtensions.x-pattern-message}}) {{/isByteArray}}{{/pattern}}{{!minLength && maxLength set}}{{#minLength}}{{#maxLength}}@Size(min = {{minLength}}, max = {{maxLength}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxLength}}{{/minLength}}{{!minLength set, maxLength not}}{{#minLength}}{{^maxLength}}@Size(min = {{minLength}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxLength}}{{/minLength}}{{!minLength not set, maxLength set}}{{^minLength}}{{#maxLength}}@Size(max = {{.}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxLength}}{{/minLength}}{{!@Size: minItems && maxItems set}}{{#minItems}}{{#maxItems}}@Size(min = {{minItems}}, max = {{maxItems}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxItems}}{{/minItems}}{{!@Size: minItems set, maxItems not}}{{#minItems}}{{^maxItems}}@Size(min = {{minItems}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxItems}}{{/minItems}}{{!@Size: minItems not set && maxItems set}}{{^minItems}}{{#maxItems}}@Size(max = {{.}}{{#vendorExtensions.x-size-message}}, message="{{{vendorExtensions.x-size-message}}}"{{/vendorExtensions.x-size-message}}) {{/maxItems}}{{/minItems}}{{!@Email: useBeanValidation}}{{#isEmail}}{{#useBeanValidation}}@{{javaxPackage}}.validation.constraints.Email {{/useBeanValidation}}{{!@Email: performBeanValidation exclusive}}{{^useBeanValidation}}{{#performBeanValidation}}@org.hibernate.validator.constraints.Email {{/performBeanValidation}}{{/useBeanValidation}}{{/isEmail}}{{!check for integer or long / all others=decimal type with @Decimal*isInteger set}}{{#isInteger}}{{#minimum}}@Min({{.}}{{#vendorExtensions.x-min-message}}, message="{{{vendorExtensions.x-min-message}}}"{{/vendorExtensions.x-min-message}}) {{/minimum}}{{#maximum}}@Max({{.}}{{#vendorExtensions.x-max-message}}, message="{{{vendorExtensions.x-max-message}}}"{{/vendorExtensions.x-max-message}}) {{/maximum}}{{/isInteger}}{{!isLong set}}{{#isLong}}{{#minimum}}@Min({{.}}L{{#vendorExtensions.x-min-message}}, message="{{{vendorExtensions.x-min-message}}}"{{/vendorExtensions.x-min-message}}) {{/minimum}}{{#maximum}}@Max({{.}}L{{#vendorExtensions.x-max-message}}, message="{{{vendorExtensions.x-max-message}}}"{{/vendorExtensions.x-max-message}}) {{/maximum}}{{/isLong}}{{!Not Integer, not Long => we have a decimal value!}}{{^isInteger}}{{^isLong}}{{#minimum}}@DecimalMin({{#exclusiveMinimum}}value = {{/exclusiveMinimum}}"{{minimum}}"{{#exclusiveMinimum}}, inclusive = false{{/exclusiveMinimum}}{{#vendorExtensions.x-decimalMin-message}}, message="{{{vendorExtensions.x-decimalMin-message}}}"{{/vendorExtensions.x-decimalMin-message}}) {{/minimum}}{{#maximum}}@DecimalMax({{#exclusiveMaximum}}value = {{/exclusiveMaximum}}"{{maximum}}"{{#exclusiveMaximum}}, inclusive = false{{/exclusiveMaximum}}{{#vendorExtensions.x-decimalMax-message}}, message="{{{vendorExtensions.x-decimalMax-message}}}"{{/vendorExtensions.x-decimalMax-message}}) {{/maximum}}{{/isLong}}{{/isInteger}}{{/isDateTime}}{{/isDate}}{{/isUuid}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#openApiNullable}}{{#isNullable}}JsonNullable<{{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional<{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{/openApiNullable}}{{{datatypeWithEnum}}}{{#openApiNullable}}{{#isNullable}}>{{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}>{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{/openApiNullable}}
{{#openApiNullable}}{{#isNullable}}JsonNullable<{{/isNullable}}{{/openApiNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional<{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{#isContainer}}{{{baseType}}}{{#isArray}}{{#items}}<{{>nullableDataType}}>{{/items}}{{/isArray}}{{#isMap}}{{#items}}<String, {{>nullableDataType}}>{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}>{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{#openApiNullable}}{{#isNullable}}>{{/isNullable}}{{/openApiNullable}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#openApiNullable}}{{#isNullable}}{{^isContainer}}JsonNullable<{{#useBeanValidation}}{{>beanValidationCore}}{{/useBeanValidation}}{{/isContainer}}{{#isContainer}}JsonNullable<{{/isContainer}}{{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional<{{#useBeanValidation}}{{>beanValidationCore}}{{/useBeanValidation}}{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{/openApiNullable}}{{{datatypeWithEnum}}}{{#openApiNullable}}{{#isNullable}}>{{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}>{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{/openApiNullable}}
{{#openApiNullable}}{{#isNullable}}JsonNullable<{{/isNullable}}{{/openApiNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional<{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{#isContainer}}{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}{{{baseType}}}{{#isArray}}{{#items}}<{{>nullableDataTypeBeanValidation}}>{{/items}}{{/isArray}}{{#isMap}}{{#items}}<String, {{>nullableDataTypeBeanValidation}}>{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}{{{datatypeWithEnum}}}{{/isContainer}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}>{{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{#openApiNullable}}{{#isNullable}}>{{/isNullable}}{{/openApiNullable}}
Original file line number Diff line number Diff line change
Expand Up @@ -69,29 +69,13 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
{{#deprecated}}
@Deprecated
{{/deprecated}}
{{#isContainer}}
{{#useBeanValidation}}@Valid{{/useBeanValidation}}
{{#openApiNullable}}
private {{#isNullable}}{{>nullableDataTypeBeanValidation}} {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();{{/isNullable}}{{^required}}{{^isNullable}}{{>nullableDataTypeBeanValidation}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};{{/isNullable}}{{/required}}{{#required}}{{^isNullable}}{{>nullableDataTypeBeanValidation}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};{{/isNullable}}{{/required}}
{{/openApiNullable}}
{{^openApiNullable}}
private {{>nullableDataType}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
{{/openApiNullable}}
{{/isContainer}}
{{^isContainer}}
{{#isDate}}
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
{{/isDate}}
{{#isDateTime}}
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
{{/isDateTime}}
{{#openApiNullable}}
private {{#isNullable}}{{>nullableDataTypeBeanValidation}} {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();{{/isNullable}}{{^required}}{{^isNullable}}{{>nullableDataTypeBeanValidation}} {{name}}{{#useOptional}} = Optional.{{^defaultValue}}empty(){{/defaultValue}}{{#defaultValue}}of({{{.}}}){{/defaultValue}};{{/useOptional}}{{^useOptional}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};{{/useOptional}}{{/isNullable}}{{/required}}{{^isNullable}}{{#required}}{{>nullableDataTypeBeanValidation}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};{{/required}}{{/isNullable}}
{{/openApiNullable}}
{{^openApiNullable}}
private {{>nullableDataType}} {{name}}{{#isNullable}} = null{{/isNullable}}{{^isNullable}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/isNullable}};
{{/openApiNullable}}
{{/isContainer}}
private {{>nullableDataTypeBeanValidation}} {{name}}{{#isNullable}}{{#openApiNullable}} = JsonNullable.{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}}{{/openApiNullable}}{{^openApiNullable}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/openApiNullable}}{{/isNullable}}{{^isNullable}}{{#required}}{{!required non-nullable}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}}{{! optional non-nullable}}{{#useOptional}}{{!with Optional<> wrapper}}{{#isContainer}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/isContainer}}{{^isContainer}} = Optional.{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}empty(){{/defaultValue}}{{/isContainer}}{{/useOptional}}{{^useOptional}}{{!without Optional<> wrapper}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/useOptional}}{{/required}}{{/isNullable}};
{{/vars}}
{{#vendorExtensions.x-java-no-args-constructor}}

Expand All @@ -107,18 +91,13 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
/**
* Constructor with only required parameters{{#generateConstructorWithAllArgs}}{{^vendorExtensions.x-java-all-args-constructor}} and all parameters{{/vendorExtensions.x-java-all-args-constructor}}{{/generateConstructorWithAllArgs}}
*/
public {{classname}}({{#requiredVars}}{{{datatypeWithEnum}}} {{name}}{{^-last}}, {{/-last}}{{/requiredVars}}) {
public {{classname}}({{#requiredVars}}{{>nullableDataType}} {{name}}{{^-last}}, {{/-last}}{{/requiredVars}}) {
{{#parent}}
super({{#parentRequiredVars}}{{name}}{{^-last}}, {{/-last}}{{/parentRequiredVars}});
{{/parent}}
{{#vars}}
{{#required}}
{{#openApiNullable}}
this.{{name}} = {{#isNullable}}JsonNullable.of({{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional.ofNullable({{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{name}}{{#isNullable}}){{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}){{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}};
{{/openApiNullable}}
{{^openApiNullable}}
this.{{name}} = {{name}};
{{/openApiNullable}}
{{/required}}
{{/vars}}
}
Expand All @@ -130,67 +109,41 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
/**
* Constructor with all args parameters
*/
public {{classname}}({{#vendorExtensions.x-java-all-args-constructor-vars}}{{{datatypeWithEnum}}} {{name}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-java-all-args-constructor-vars}}) {
{{#parent}}
super({{#parentVars}}{{name}}{{^-last}}, {{/-last}}{{/parentVars}});
{{/parent}}
{{#vars}}
{{#openApiNullable}}
this.{{name}} = {{#isNullable}}JsonNullable.of({{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional.ofNullable({{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{name}}{{#isNullable}}){{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}){{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}};
{{/openApiNullable}}
{{^openApiNullable}}
this.{{name}} = {{name}};
{{/openApiNullable}}
{{/vars}}
public {{classname}}({{#vendorExtensions.x-java-all-args-constructor-vars}}{{>nullableDataType}} {{name}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-java-all-args-constructor-vars}}) {
{{#parent}}
super({{#parentVars}}{{name}}{{^-last}}, {{/-last}}{{/parentVars}});
{{/parent}}
{{#vars}}
this.{{name}} = {{name}};
{{/vars}}
}
{{/vendorExtensions.x-java-all-args-constructor}}
{{/lombok.Data}}
{{#vars}}
{{^lombok.Data}}

{{! begin feature: fluent setter methods }}
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
{{#openApiNullable}}
this.{{name}} = {{#isNullable}}JsonNullable.of({{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}Optional.of({{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}}{{name}}{{#isNullable}}){{/isNullable}}{{#useOptional}}{{^required}}{{^isNullable}}{{^isContainer}}){{/isContainer}}{{/isNullable}}{{/required}}{{/useOptional}};
{{/openApiNullable}}
{{^openApiNullable}}
public {{classname}} {{name}}({{>nullableDataType}} {{name}}) {
this.{{name}} = {{name}};
{{/openApiNullable}}
return this;
}
{{#isArray}}

public {{classname}} add{{nameInPascalCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) {
{{#openApiNullable}}
if (this.{{name}} == null{{#isNullable}} || !this.{{name}}.isPresent(){{/isNullable}}) {
this.{{name}} = {{#isNullable}}JsonNullable.of({{/isNullable}}{{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/defaultValue}}{{#isNullable}}){{/isNullable}};
}
this.{{name}}{{#isNullable}}.get(){{/isNullable}}.add({{name}}Item);
{{/openApiNullable}}
{{^openApiNullable}}
if (this.{{name}} == null) {
this.{{name}} = {{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/defaultValue}};
public {{classname}} add{{nameInPascalCase}}Item({{#items}}{{>nullableDataType}}{{/items}} {{name}}Item) {
if (this.{{name}} == null{{#openApiNullable}}{{#isNullable}} || !this.{{name}}.isPresent(){{/isNullable}}{{/openApiNullable}}) {
this.{{name}} = {{#openApiNullable}}{{#isNullable}}JsonNullable.of({{/isNullable}}{{/openApiNullable}}{{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/defaultValue}}{{#openApiNullable}}{{#isNullable}}){{/isNullable}}{{/openApiNullable}};
}
this.{{name}}.add({{name}}Item);
{{/openApiNullable}}
this.{{name}}{{#openApiNullable}}{{#isNullable}}.get(){{/isNullable}}{{/openApiNullable}}.add({{name}}Item);
return this;
}
{{/isArray}}
{{#isMap}}

public {{classname}} put{{nameInPascalCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) {
{{#openApiNullable}}
if (this.{{name}} == null{{#isNullable}} || !this.{{name}}.isPresent(){{/isNullable}}) {
this.{{name}} = {{#isNullable}}JsonNullable.of({{/isNullable}}{{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}HashMap{{/uniqueItems}}<>(){{/defaultValue}}{{#isNullable}}){{/isNullable}};
public {{classname}} put{{nameInPascalCase}}Item(String key, {{#items}}{{>nullableDataType}}{{/items}} {{name}}Item) {
if (this.{{name}} == null{{#openApiNullable}}{{#isNullable}} || !this.{{name}}.isPresent(){{/isNullable}}{{/openApiNullable}}) {
this.{{name}} = {{#openApiNullable}}{{#isNullable}}JsonNullable.of({{/isNullable}}{{/openApiNullable}}{{{defaultValue}}}{{^defaultValue}}new HashMap<>(){{/defaultValue}}{{#openApiNullable}}{{#isNullable}}){{/isNullable}}{{/openApiNullable}};
}
this.{{name}}{{#isNullable}}.get(){{/isNullable}}.put(key, {{name}}Item);
{{/openApiNullable}}
{{^openApiNullable}}
if (this.{{name}} == null) {
this.{{name}} = {{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}HashMap{{/uniqueItems}}<>(){{/defaultValue}};
}
this.{{name}}.put(key, {{name}}Item);
{{/openApiNullable}}
this.{{name}}{{#openApiNullable}}{{#isNullable}}.get(){{/isNullable}}{{/openApiNullable}}.put(key, {{name}}Item);
return this;
}
{{/isMap}}
Expand Down Expand Up @@ -219,9 +172,6 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
{{#vendorExtensions.x-extra-annotation}}
{{{vendorExtensions.x-extra-annotation}}}
{{/vendorExtensions.x-extra-annotation}}
{{#useBeanValidation}}
{{>beanValidation}}
{{/useBeanValidation}}
{{^useBeanValidation}}
{{#required}}@NotNull{{/required}}
{{/useBeanValidation}}
Expand Down Expand Up @@ -279,20 +229,20 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}

{{^lombok.Setter}}
{{! begin feature: fluent setter methods for inherited properties }}
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
public {{classname}} {{name}}({{>nullableDataType}} {{name}}) {
super.{{name}}({{name}});
return this;
}
{{#isArray}}

public {{classname}} add{{nameInPascalCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) {
public {{classname}} add{{nameInPascalCase}}Item({{#items}}{{>nullableDataType}}{{/items}} {{name}}Item) {
super.add{{nameInPascalCase}}Item({{name}}Item);
return this;
}
{{/isArray}}
{{#isMap}}

public {{classname}} put{{nameInPascalCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) {
public {{classname}} put{{nameInPascalCase}}Item(String key, {{#items}}{{>nullableDataType}}{{/items}} {{name}}Item) {
super.put{{nameInPascalCase}}Item(key, {{name}}Item);
return this;
}
Expand Down Expand Up @@ -364,4 +314,4 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
{{>javaBuilder}}
{{/generateBuilders}}
{{/lombok.Data}}
}
}
Loading
Loading