Skip to content

Commit 877812d

Browse files
authored
[Java] use x-implements (#11784)
1 parent 31f0c65 commit 877812d

18 files changed

Lines changed: 29 additions & 19 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,6 +1297,7 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
12971297
}
12981298
}
12991299

1300+
@SuppressWarnings("unchecked")
13001301
@Override
13011302
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
13021303
// recursively add import for mapping one type to multiple imports
@@ -1316,6 +1317,18 @@ public Map<String, Object> postProcessModels(Map<String, Object> objs) {
13161317
}
13171318
}
13181319

1320+
List<Object> models = (List<Object>) objs.get("models");
1321+
1322+
for (Object _mo : models) {
1323+
Map<String, Object> mo = (Map<String, Object>) _mo;
1324+
CodegenModel cm = (CodegenModel) mo.get("model");
1325+
1326+
cm.getVendorExtensions().putIfAbsent("x-implements", new ArrayList<String>());
1327+
if (this.serializableModel) {
1328+
((ArrayList<String>) cm.getVendorExtensions().get("x-implements")).add("Serializable");
1329+
}
1330+
}
1331+
13191332
return postProcessModelsEnum(objs);
13201333
}
13211334

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -904,9 +904,6 @@ public Map<String, Object> postProcessModels(Map<String, Object> objs) {
904904
if (this.parcelableModel) {
905905
((ArrayList<String>) cm.getVendorExtensions().get("x-implements")).add("Parcelable");
906906
}
907-
if (this.serializableModel) {
908-
((ArrayList<String>) cm.getVendorExtensions().get("x-implements")).add("Serializable");
909-
}
910907
}
911908

912909
return objs;

modules/openapi-generator/src/main/resources/Java/libraries/microprofile/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import javax.json.bind.annotation.JsonbCreator;
3737
**/
3838
{{/description}}
3939
{{>additionalModelTypeAnnotations}}
40-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#serializableModel}} implements Serializable{{/serializableModel}} {
40+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
4141
{{#vars}}{{#isEnum}}{{^isContainer}}
4242
{{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
4343
{{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}

modules/openapi-generator/src/main/resources/JavaInflector/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{#description}}@ApiModel(description = "{{{.}}}"){{/description}}
22
{{>generatedAnnotation}}{{>additionalModelTypeAnnotations}}
3-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
3+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
44
{{#vars}}
55
{{#isEnum}}
66
{{^isContainer}}

modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import javax.xml.bind.annotation.*;
66
{{/withXml}}
77

88
{{#description}}@ApiModel(description = "{{{.}}}"){{/description}}{{>additionalModelTypeAnnotations}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}
9-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
9+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
1010
{{#vars}}{{#isEnum}}{{^isContainer}}
1111

1212
{{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}

modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
2525
*/
2626
@ApiModel(description="{{{description}}}")
2727
{{/description}}{{>additionalModelTypeAnnotations}}
28-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#serializableModel}} implements Serializable{{/serializableModel}} {
28+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
2929
{{#vars}}{{#isEnum}}{{^isContainer}}
3030
{{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
3131
{{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}

modules/openapi-generator/src/main/resources/JavaJaxRS/cxf/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
1616
**/
1717
@ApiModel(description="{{{description}}}")
1818
{{/description}}
19-
{{>additionalModelTypeAnnotations}}{{>xmlPojoAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#serializableModel}} implements Serializable{{/serializableModel}} {
19+
{{>additionalModelTypeAnnotations}}{{>xmlPojoAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
2020
{{#vars}}{{#isEnum}}{{^isContainer}}
2121
{{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
2222
{{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}

modules/openapi-generator/src/main/resources/JavaJaxRS/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
})
1111
{{/jackson}}
1212
{{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}
13-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
13+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
1414
{{#vars}}
1515
{{#isEnum}}
1616
{{^isContainer}}

modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import io.swagger.annotations.*;
22

33
{{#description}}@ApiModel(description="{{{.}}}"){{/description}}{{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}
4-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
4+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
55
{{#serializableModel}}
66
private static final long serialVersionUID = 1L;
77
{{/serializableModel}}

modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/pojo.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import io.swagger.annotations.*;
22

33
{{#description}}@ApiModel(description="{{{.}}}"){{/description}}{{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}
4-
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
4+
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
55
{{#serializableModel}}
66
private static final long serialVersionUID = 1L;
77
{{/serializableModel}}

0 commit comments

Comments
 (0)