Skip to content

Commit 3546c9b

Browse files
committed
return the new codegen object on methods where is created
1 parent f45c165 commit 3546c9b

File tree

2 files changed

+43
-21
lines changed

2 files changed

+43
-21
lines changed

src/main/java/io/swagger/codegen/v3/generators/SchemaHandler.java

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public SchemaHandler(DefaultCodegenConfig codegenConfig) {
3232
@Override
3333
public void processComposedSchemas(CodegenModel codegenModel, Schema schema, Map<String, CodegenModel> allModels) {
3434
if (schema instanceof ComposedSchema) {
35-
this.processComposedSchema(codegenModel, (ComposedSchema) schema, allModels);
35+
this.addComposedModel(this.processComposedSchema(codegenModel, (ComposedSchema) schema, allModels));
3636
return;
3737
}
3838
if (schema instanceof ArraySchema) {
39-
this.processArrayItemSchema(codegenModel, (ArraySchema) schema, allModels);
39+
this.addComposedModel(this.processArrayItemSchema(codegenModel, (ArraySchema) schema, allModels));
4040
return;
4141
}
4242
final Map<String, Schema> properties = schema.getProperties();
@@ -55,11 +55,11 @@ public void processComposedSchemas(CodegenModel codegenModel, Schema schema, Map
5555
final CodegenProperty codegenProperty = optionalCodegenProperty.get();
5656
final String codegenName = codegenModel.getName() + codegenConfig.toModelName(codegenProperty.getName());
5757
if (property instanceof ComposedSchema) {
58-
processComposedSchema(codegenName, codegenProperty, (ComposedSchema) property, allModels);
58+
this.addComposedModel(this.processComposedSchema(codegenName, codegenProperty, (ComposedSchema) property, allModels));
5959
continue;
6060
}
6161
if (property instanceof ArraySchema) {
62-
this.processArrayItemSchema(codegenName, codegenProperty, (ArraySchema) property, allModels);
62+
this.addComposedModel(this.processArrayItemSchema(codegenName, codegenProperty, (ArraySchema) property, allModels));
6363
continue;
6464
}
6565
}
@@ -70,54 +70,67 @@ public List<CodegenModel> getModels() {
7070
return composedModels;
7171
}
7272

73-
protected void processComposedSchema(CodegenModel codegenModel, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
73+
protected CodegenModel processComposedSchema(CodegenModel codegenModel, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
7474
List<Schema> schemas = composedSchema.getOneOf();
7575
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + codegenModel.getName(), schemas);
7676
if (composedModel == null) {
7777
schemas = composedSchema.getAnyOf();
7878
composedModel = this.createComposedModel(ANY_OF_PREFFIX + codegenModel.getName(), schemas);
7979
if (composedModel == null) {
80-
return;
80+
return null;
8181
}
8282
}
8383
this.addInterfaceModel(codegenModel, composedModel);
8484
this.addInterfaces(schemas, composedModel, allModels);
85-
composedModels.add(composedModel);
85+
return composedModel;
86+
}
87+
88+
protected CodegenModel processComposedSchema(String name, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
89+
List<Schema> schemas = composedSchema.getOneOf();
90+
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + name, schemas);
91+
if (composedModel == null) {
92+
schemas = composedSchema.getAnyOf();
93+
composedModel = this.createComposedModel(ANY_OF_PREFFIX + name, schemas);
94+
if (composedModel == null) {
95+
return null;
96+
}
97+
}
98+
this.addInterfaces(schemas, composedModel, allModels);
99+
return composedModel;
86100
}
87101

88-
protected void processComposedSchema(String codegenModelName, CodegenProperty codegenProperty, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
102+
protected CodegenModel processComposedSchema(String codegenModelName, CodegenProperty codegenProperty, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
89103
List<Schema> schemas = composedSchema.getOneOf();
90104
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + codegenModelName, schemas);
91105
if (composedModel == null) {
92106
schemas = composedSchema.getAnyOf();
93107
composedModel = this.createComposedModel(ANY_OF_PREFFIX + codegenModelName, schemas);
94108
if (composedModel == null) {
95-
return;
109+
return null;
96110
}
97111
}
98112
this.addInterfaces(schemas, composedModel, allModels);
99113
codegenProperty.datatype = composedModel.getName();
100114
codegenProperty.datatypeWithEnum = composedModel.getName();
101115
codegenProperty.baseType = composedModel.getName();
102116
codegenProperty.complexType = composedModel.getName();
103-
104-
composedModels.add(composedModel);
117+
return composedModel;
105118
}
106119

107-
protected void processArrayItemSchema(CodegenModel codegenModel, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
120+
protected CodegenModel processArrayItemSchema(CodegenModel codegenModel, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
108121
final Schema itemsSchema = arraySchema.getItems();
109122
if (itemsSchema instanceof ComposedSchema) {
110-
final CodegenModel itemsModel = CodegenModelFactory.newInstance(CodegenModelType.MODEL);
111-
itemsModel.setName(codegenModel.name + ARRAY_ITEMS_SUFFIX);
112-
this.processComposedSchema(itemsModel, (ComposedSchema) itemsSchema, allModels);
123+
return this.processComposedSchema(codegenModel.name + ARRAY_ITEMS_SUFFIX, (ComposedSchema) itemsSchema, allModels);
113124
}
125+
return null;
114126
}
115127

116-
protected void processArrayItemSchema(String codegenModelName, CodegenProperty codegenProperty, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
128+
protected CodegenModel processArrayItemSchema(String codegenModelName, CodegenProperty codegenProperty, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
117129
final Schema itemsSchema = arraySchema.getItems();
118130
if (itemsSchema instanceof ComposedSchema) {
119-
this.processComposedSchema(codegenModelName, codegenProperty, (ComposedSchema) itemsSchema, allModels);
131+
return this.processComposedSchema(codegenModelName, codegenProperty, (ComposedSchema) itemsSchema, allModels);
120132
}
133+
return null;
121134
}
122135

123136
protected CodegenModel createComposedModel(String name, List<Schema> schemas) {
@@ -168,4 +181,11 @@ protected boolean hasNonObjectSchema(List<Schema> schemas) {
168181
}
169182
return false;
170183
}
184+
185+
protected void addComposedModel(CodegenModel composedModel) {
186+
if (composedModel == null) {
187+
return;
188+
}
189+
this.composedModels.add(composedModel);
190+
}
171191
}

src/main/java/io/swagger/codegen/v3/generators/html/HtmlSchemaHandler.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ public HtmlSchemaHandler(DefaultCodegenConfig codegenConfig) {
2222
super(codegenConfig);
2323
}
2424

25-
protected void processComposedSchema(CodegenModel codegenModel, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
25+
protected CodegenModel processComposedSchema(CodegenModel codegenModel, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
2626
List<Schema> schemas = composedSchema.getOneOf();
2727
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + codegenModel.getName(), schemas);
2828
if (composedModel == null) {
2929
schemas = composedSchema.getAnyOf();
3030
composedModel = this.createComposedModel(ANY_OF_PREFFIX + codegenModel.getName(), schemas);
3131
if (composedModel == null) {
32-
return;
32+
return null;
3333
}
3434
}
3535
this.addInterfaceModel(codegenModel, composedModel);
@@ -40,16 +40,17 @@ protected void processComposedSchema(CodegenModel codegenModel, ComposedSchema c
4040
} else if (composedModel.getName().startsWith(ONE_OF_PREFFIX)) {
4141
codegenModel.vendorExtensions.put("anyOf-model", composedModel);
4242
}
43+
return null;
4344
}
4445

45-
protected void processComposedSchema(String codegenModelName, CodegenProperty codegenProperty, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
46+
protected CodegenModel processComposedSchema(String codegenModelName, CodegenProperty codegenProperty, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
4647
List<Schema> schemas = composedSchema.getOneOf();
4748
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + codegenModelName, schemas);
4849
if (composedModel == null) {
4950
schemas = composedSchema.getAnyOf();
5051
composedModel = this.createComposedModel(ANY_OF_PREFFIX + codegenModelName, schemas);
5152
if (composedModel == null) {
52-
return;
53+
return null;
5354
}
5455
}
5556
if (composedModel.getName().startsWith(ONE_OF_PREFFIX)) {
@@ -66,5 +67,6 @@ protected void processComposedSchema(String codegenModelName, CodegenProperty co
6667
}
6768
}
6869
composedModel.vendorExtensions.put("x-model-names", modelNames);
70+
return null;
6971
}
7072
}

0 commit comments

Comments
 (0)