Skip to content
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

#19601 | Process fields of POJOs recursively #19630

Open
wants to merge 23 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 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
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion docs/generators/java-camel.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,12 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|x-operation-extra-annotation|List of custom annotations to be added to operation|OPERATION|null
|x-spring-paginated|Add org.springframework.data.domain.Pageable to controller method. Can be used to handle page & size query parameters|OPERATION|false
|x-version-param|Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false|OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the invalidation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the validation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-size-message|Add this property whenever you need to customize the validation error message for the size of a variable (can be applied along with `minLength`, `maxLength`, `minItems`, `maxItems`)|FIELD, OPERATION_PARAMETER|null
|x-min-message|Add this property whenever you need to customize the validation error message for the minimum of a number|FIELD, OPERATION_PARAMETER|null
|x-max-message|Add this property whenever you need to customize the validation error message for the maximum of a number|FIELD, OPERATION_PARAMETER|null
|x-decimalMin-message|Add this property whenever you need to customize the validation error message for the minimum of a decimal number|FIELD, OPERATION_PARAMETER|null
|x-decimalMax-message|Add this property whenever you need to customize the validation error message for the maximum of a decimal number|FIELD, OPERATION_PARAMETER|null


## IMPORT MAPPING
Expand Down
7 changes: 6 additions & 1 deletion docs/generators/kotlin-spring.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,12 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|x-content-type|Specify custom value for 'Content-Type' header for operation|OPERATION|null
|x-discriminator-value|Used with model inheritance to specify value for discriminator that identifies current model|MODEL|
|x-field-extra-annotation|List of custom annotations to be added to property|FIELD, OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the invalidation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the validation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-size-message|Add this property whenever you need to customize the validation error message for the size of a variable (can be applied along with `minLength`, `maxLength`, `minItems`, `maxItems`)|FIELD, OPERATION_PARAMETER|null
|x-min-message|Add this property whenever you need to customize the validation error message for the minimum of a number|FIELD, OPERATION_PARAMETER|null
|x-max-message|Add this property whenever you need to customize the validation error message for the maximum of a number|FIELD, OPERATION_PARAMETER|null
|x-decimalMin-message|Add this property whenever you need to customize the validation error message for the minimum of a decimal number|FIELD, OPERATION_PARAMETER|null
|x-decimalMax-message|Add this property whenever you need to customize the validation error message for the maximum of a decimal number|FIELD, OPERATION_PARAMETER|null


## IMPORT MAPPING
Expand Down
7 changes: 6 additions & 1 deletion docs/generators/spring.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,12 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|x-operation-extra-annotation|List of custom annotations to be added to operation|OPERATION|null
|x-spring-paginated|Add org.springframework.data.domain.Pageable to controller method. Can be used to handle page & size query parameters|OPERATION|false
|x-version-param|Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false|OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the invalidation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-pattern-message|Add this property whenever you need to customize the validation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null
|x-size-message|Add this property whenever you need to customize the validation error message for the size of a variable (can be applied along with `minLength`, `maxLength`, `minItems`, `maxItems`)|FIELD, OPERATION_PARAMETER|null
|x-min-message|Add this property whenever you need to customize the validation error message for the minimum of a number|FIELD, OPERATION_PARAMETER|null
|x-max-message|Add this property whenever you need to customize the validation error message for the maximum of a number|FIELD, OPERATION_PARAMETER|null
|x-decimalMin-message|Add this property whenever you need to customize the validation error message for the minimum of a decimal number|FIELD, OPERATION_PARAMETER|null
|x-decimalMax-message|Add this property whenever you need to customize the validation error message for the maximum of a decimal number|FIELD, OPERATION_PARAMETER|null


## IMPORT MAPPING
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@
X_FIELD_EXTRA_ANNOTATION("x-field-extra-annotation", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "List of custom annotations to be added to property", null),
X_OPERATION_EXTRA_ANNOTATION("x-operation-extra-annotation", ExtensionLevel.OPERATION, "List of custom annotations to be added to operation", null),
X_VERSION_PARAM("x-version-param", ExtensionLevel.OPERATION_PARAMETER, "Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false", null),
X_PATTERN_MESSAGE("x-pattern-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the invalidation error message for the regex pattern of a variable", null),
X_PATTERN_MESSAGE("x-pattern-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the regex pattern of a variable", null),
X_SIZE_MESSAGE("x-size-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the size of a variable (can be applied along with `minLength`, `maxLength`, `minItems`, `maxItems`)", null),
X_MIN_MESSAGE("x-min-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the minimum of a number", null),
X_MAX_MESSAGE("x-max-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the maximum of a number", null),
X_DECIMAL_MIN_MESSAGE("x-decimalMin-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the minimum of a decimal number", null),
X_DECIMAL_MAX_MESSAGE("x-decimalMax-message", Arrays.asList(ExtensionLevel.FIELD, ExtensionLevel.OPERATION_PARAMETER), "Add this property whenever you need to customize the validation error message for the maximum of a decimal number", null),
;

private final String name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -991,6 +991,11 @@ public List<VendorExtension> getSupportedVendorExtensions() {
extensions.add(VendorExtension.X_DISCRIMINATOR_VALUE);
extensions.add(VendorExtension.X_FIELD_EXTRA_ANNOTATION);
extensions.add(VendorExtension.X_PATTERN_MESSAGE);
extensions.add(VendorExtension.X_SIZE_MESSAGE);
extensions.add(VendorExtension.X_MIN_MESSAGE);
extensions.add(VendorExtension.X_MAX_MESSAGE);
extensions.add(VendorExtension.X_DECIMAL_MIN_MESSAGE);
extensions.add(VendorExtension.X_DECIMAL_MAX_MESSAGE);
return extensions;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1170,6 +1170,11 @@ public List<VendorExtension> getSupportedVendorExtensions() {
extensions.add(VendorExtension.X_SPRING_PAGINATED);
extensions.add(VendorExtension.X_VERSION_PARAM);
extensions.add(VendorExtension.X_PATTERN_MESSAGE);
extensions.add(VendorExtension.X_SIZE_MESSAGE);
extensions.add(VendorExtension.X_MIN_MESSAGE);
extensions.add(VendorExtension.X_MAX_MESSAGE);
extensions.add(VendorExtension.X_DECIMAL_MIN_MESSAGE);
extensions.add(VendorExtension.X_DECIMAL_MAX_MESSAGE);
return extensions;
}
}
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
Expand Up @@ -24,29 +24,17 @@
{{#deprecated}}
@Deprecated
{{/deprecated}}
public {{classname}}.Builder {{name}}({{{datatypeWithEnum}}} {{name}}) {
public {{classname}}.Builder {{name}}({{>nullableDataType}} {{name}}) {
this.instance.{{name}}({{name}});
return this;
}
{{#openApiNullable}}{{#isNullable}}
public {{classname}}.Builder {{name}}(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) {
this.instance.{{name}} = {{name}};
return this;
}
{{/isNullable}}{{/openApiNullable}}
{{/vars}}
{{#parentVars}}
@Override
public {{classname}}.Builder {{name}}({{{datatypeWithEnum}}} {{name}}) {
public {{classname}}.Builder {{name}}({{>nullableDataType}} {{name}}) {
this.instance.{{name}}({{name}});
return this;
}
{{#openApiNullable}}{{#isNullable}}
public {{classname}}.Builder {{name}}(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) {
this.instance.{{setter}}({{name}});
return this;
}
{{/isNullable}}{{/openApiNullable}}
{{/parentVars}}
{{#additionalPropertiesType}}
public {{classname}}.Builder additionalProperties(Map<String, {{{.}}}> additionalProperties) {
Expand Down
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}}
Loading
Loading