Skip to content

Commit 574db8c

Browse files
committed
attempts to make non required with default non-nullable
1 parent f9d2b8b commit 574db8c

6 files changed

Lines changed: 146 additions & 25 deletions

File tree

modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@
4646
}}{{/serializableModel}}{{! no newline
4747
}}{{/parent}} {
4848
{{#discriminator}}
49-
{{#requiredVars}}
50-
{{>interfaceReqVar}}{{! prevent indent}}
51-
{{/requiredVars}}
52-
{{#optionalVars}}
53-
{{>interfaceOptVar}}{{! prevent indent}}
54-
{{/optionalVars}}
49+
{{#requiredVars}}
50+
{{>interfaceReqVar}}{{! prevent indent}}
51+
{{/requiredVars}}
52+
{{#optionalVars}}
53+
{{>interfaceOptVar}}{{! prevent indent}}
54+
{{/optionalVars}}
5555
{{/discriminator}}
5656
{{#hasEnums}}{{#vars}}{{#isEnum}}
5757
/**
Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
1-
{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}
2-
@Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
3-
@ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#deprecated}}
4-
@Deprecated(message = ""){{/deprecated}}{{#vendorExtensions.x-field-extra-annotation}}
5-
{{{.}}}{{/vendorExtensions.x-field-extra-annotation}}
6-
@get:JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}
1+
{{! comments are used to break long lines into multiple lines for better readability }}
2+
{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{!
3+
}}{{#swagger2AnnotationLibrary}}
4+
@Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = false, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{!
5+
}}{{/swagger2AnnotationLibrary}}{{!
6+
}}{{#swagger1AnnotationLibrary}}
7+
@ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = false, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{!
8+
}}{{/swagger1AnnotationLibrary}}{{!
9+
}}{{#deprecated}}
10+
@Deprecated(message = ""){{!
11+
}}{{/deprecated}}{{!
12+
}}{{#vendorExtensions.x-field-extra-annotation}}
13+
{{{.}}}{{!
14+
}}{{/vendorExtensions.x-field-extra-annotation}}
15+
@get:JsonProperty("{{{baseName}}}", required = false){{!
16+
}}{{#isInherited}}
17+
override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{!
18+
}}{{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{!
19+
}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{!
20+
}}{{^defaultValue}}? = null{{/defaultValue}}{{!
21+
}}{{#defaultValue}} = {{!
22+
}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{!
23+
}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{!
24+
}}{{/defaultValue}}
Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
1-
{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}
2-
@Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
3-
@ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}}
4-
{{{.}}}{{/vendorExtensions.x-field-extra-annotation}}
5-
@get:JsonProperty("{{{baseName}}}", required = true){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}
1+
{{! comments are used to break long lines into multiple lines for better readability }}
2+
{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{!
3+
}}{{#swagger2AnnotationLibrary}}
4+
@Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{!
5+
}}{{/swagger2AnnotationLibrary}}{{!
6+
}}{{#swagger1AnnotationLibrary}}
7+
@ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{!
8+
}}{{/swagger1AnnotationLibrary}}{{!
9+
}}{{#vendorExtensions.x-field-extra-annotation}}
10+
{{{.}}}{{!
11+
}}{{/vendorExtensions.x-field-extra-annotation}}
12+
@get:JsonProperty("{{{baseName}}}", required = true){{!
13+
}}{{#isInherited}}
14+
override {{!
15+
}}{{/isInherited}}{{>modelMutable}} {{{name}}}: {{!
16+
}}{{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{!
17+
}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{!
18+
}}{{#isNullable}}?{{/isNullable}}{{!
19+
}}{{#defaultValue}} = {{!
20+
}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{!
21+
}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{!
22+
}}{{/defaultValue}}
Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
1+
{{! comments are used to break long lines into multiple lines for better readability }}
12
{{#swagger2AnnotationLibrary}}
2-
@get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
3-
@get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}}
4-
{{{.}}}{{/vendorExtensions.x-field-extra-annotation}}
5-
{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}}{{/discriminator}}
3+
@get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{!
4+
}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{!
5+
}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}{{!
6+
}}description = "{{{description}}}"){{!
7+
}}{{/swagger2AnnotationLibrary}}{{!
8+
}}{{#swagger1AnnotationLibrary}}
9+
@get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{!
10+
}}{{#required}}required = {{required}}, {{/required}}{{!
11+
}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}{{!
12+
}}value = "{{{description}}}"){{!
13+
}}{{/swagger1AnnotationLibrary}}{{!
14+
}}{{#vendorExtensions.x-field-extra-annotation}}
15+
{{{.}}}{{!
16+
}}{{/vendorExtensions.x-field-extra-annotation}}
17+
{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{!
18+
}}{{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{!
19+
}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{!
20+
}}{{^defaultValue}}?{{/defaultValue}}{{!
21+
}}{{^discriminator}} = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}}{{/discriminator}}
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1+
{{! comments are used to break long lines into multiple lines for better readability }}
12
{{#swagger2AnnotationLibrary}}
2-
@get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
3-
@get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}}
4-
{{{.}}}{{/vendorExtensions.x-field-extra-annotation}}
5-
{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}
3+
@get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{!
4+
}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{!
5+
}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}{{!
6+
}}description = "{{{description}}}"){{!
7+
}}{{/swagger2AnnotationLibrary}}{{!
8+
}}{{#swagger1AnnotationLibrary}}
9+
@get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{!
10+
}}{{#required}}required = {{required}}, {{/required}}{{!
11+
}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}{{!
12+
}}value = "{{{description}}}"){{!
13+
}}{{/swagger1AnnotationLibrary}}{{!
14+
}}{{#vendorExtensions.x-field-extra-annotation}}
15+
{{{.}}}{{!
16+
}}{{/vendorExtensions.x-field-extra-annotation}}
17+
{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{!
18+
}}{{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{!
19+
}}{{^isEnum}}{{{dataType}}}{{/isEnum}}

modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,62 @@ components:
523523
$ref: '#/components/schemas/Category'
524524
name:
525525
type: string
526+
nonRequiredWithDefaultList:
527+
type: array
528+
required: false
529+
default: [ ]
530+
nonRequiredWithDefaultSet:
531+
type: array
532+
uniqueItems: true
533+
required: false
534+
default: [ ]
535+
nonRequiredWithDefaultString:
536+
type: string
537+
required: false
538+
default: defaultValue
539+
nonRequiredWithDefaultInt:
540+
type: number
541+
format: int32
542+
required: false
543+
default: 15
544+
nonRequiredWithDefaultLong:
545+
type: number
546+
format: int64
547+
required: false
548+
default: 15
549+
nonRequiredWithDefaultFloat:
550+
type: number
551+
format: float
552+
required: false
553+
default: 15.45
554+
requiredWithDefaultList:
555+
type: array
556+
required: true
557+
default: [ ]
558+
requiredWithDefaultSet:
559+
type: array
560+
uniqueItems: true
561+
required: true
562+
default: [ ]
563+
requiredWithDefaultString:
564+
type: string
565+
required: true
566+
default: defaultValue
567+
requiredWithDefaultInt:
568+
type: number
569+
format: int32
570+
required: true
571+
default: 15
572+
requiredWithDefaultLong:
573+
type: number
574+
format: int64
575+
required: true
576+
default: 15
577+
requiredWithDefaultFloat:
578+
type: number
579+
format: float
580+
required: true
581+
default: 15.45
526582
photoUrls:
527583
type: array
528584
items:

0 commit comments

Comments
 (0)