Skip to content

Commit bee1d08

Browse files
authored
Merge pull request #8 from FedosovMax/main
added a skipSingular property
2 parents a6fa324 + efdbe89 commit bee1d08

File tree

4 files changed

+35
-1
lines changed

4 files changed

+35
-1
lines changed

lib/src/main/java/com/github/slamdev/openapispringgenerator/lib/generator/SpringCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,15 @@ protected void postProcessAllCodegenModels(Map<String, CodegenModel> allModels)
148148
});
149149
}
150150

151+
@Override
152+
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
153+
super.postProcessModelProperty(model, property);
154+
Boolean skipSingular = (Boolean) property.vendorExtensions.get("x-skipSingular");
155+
if (Boolean.TRUE.equals(skipSingular)) {
156+
property.vendorExtensions.put("skipSingular", true);
157+
}
158+
}
159+
151160
@Override
152161
public void preprocessOpenAPI(OpenAPI openAPI) {
153162
super.preprocessOpenAPI(openAPI);

lib/src/main/resources/handlebars/springcodegen/pojo.mustache

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} implements
3030
@JsonProperty("{{baseName}}"){{#withXml}}
3131
@JacksonXmlProperty({{#isXmlAttribute}}isAttribute = true, {{/isXmlAttribute}}{{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}localName = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"){{/withXml}}
3232
{{/vendorExtensions.x-is-discriminator-property}}
33-
{{#isListContainer}}@Singular{{/isListContainer}}
33+
{{#isListContainer}}
34+
{{^vendorExtensions.skipSingular}}
35+
@Singular
36+
{{/vendorExtensions.skipSingular}}
37+
{{/isListContainer}}
3438
{{^isContainer}}@Builder.Default{{/isContainer}}
3539
private {{{datatypeWithEnum}}} {{name}}{{^isContainer}} = {{{defaultValue}}}{{/isContainer}};
3640

lib/src/test/java/com/github/slamdev/openapispringgenerator/lib/generator/GeneratorTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ public void should_generate() {
1818
generate(file("event-spec-v3.yaml"), "consumer", Paths.get("build/test-output"), true);
1919
}
2020

21+
@Test
22+
public void should_generate_list_with_singular_name() {
23+
generate(file("event-spec-v2.yaml"), "server", Paths.get("build/test-output"), true);
24+
}
25+
2126
private Path file(String name) {
2227
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
2328
return new File(classLoader.getResource(name).getFile()).toPath();

lib/src/test/resources/event-spec-v2.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@ paths:
1212
description: OK
1313
schema:
1414
"$ref": "#/definitions/UserEvent"
15+
/users/list:
16+
post:
17+
responses:
18+
'200':
19+
description: OK
20+
schema:
21+
"$ref": "#/definitions/UserRequest"
1522
definitions:
1623
UserEvent:
1724
type: object
25+
UserRequest:
26+
type: object
27+
properties:
28+
output:
29+
type: array
30+
items:
31+
type: string
32+
x-skipSingular: true
33+

0 commit comments

Comments
 (0)