Skip to content

Commit e7130b2

Browse files
committed
fixed new datatype and parent container name
1 parent 278c8af commit e7130b2

File tree

3 files changed

+26
-32
lines changed

3 files changed

+26
-32
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2932,7 +2932,7 @@ public void addOperationToGroup(String tag, String resourcePath, Operation opera
29322932
co.baseName = tag;
29332933
}
29342934

2935-
protected void addParentContainer(CodegenModel codegenModel, String name, Schema schema) {
2935+
public void addParentContainer(CodegenModel codegenModel, String name, Schema schema) {
29362936
final CodegenProperty codegenProperty = fromProperty(name, schema);
29372937
addImport(codegenModel, codegenProperty.complexType);
29382938
codegenModel.parent = toInstantiationType(schema);

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

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,19 @@ protected CodegenModel processComposedSchema(String codegenModelName, CodegenPro
110110
}
111111
}
112112
this.addInterfaces(schemas, composedModel, allModels);
113-
codegenProperty.datatype = composedModel.getName();
114-
codegenProperty.datatypeWithEnum = composedModel.getName();
115-
codegenProperty.baseType = composedModel.getName();
116-
codegenProperty.complexType = composedModel.getName();
113+
codegenProperty.datatype = composedModel.getClassname();
114+
codegenProperty.datatypeWithEnum = composedModel.getClassname();
115+
codegenProperty.baseType = composedModel.getClassname();
116+
codegenProperty.complexType = composedModel.getClassname();
117117
return composedModel;
118118
}
119119

120120
protected CodegenModel processArrayItemSchema(CodegenModel codegenModel, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
121121
final Schema itemsSchema = arraySchema.getItems();
122122
if (itemsSchema instanceof ComposedSchema) {
123-
return this.processComposedSchema(codegenModel.name + ARRAY_ITEMS_SUFFIX, (ComposedSchema) itemsSchema, allModels);
123+
final CodegenModel composedModel = this.processComposedSchema(codegenModel.name + ARRAY_ITEMS_SUFFIX, (ComposedSchema) itemsSchema, allModels);
124+
this.updateParentModel(codegenModel, composedModel.name, arraySchema);
125+
return composedModel;
124126
}
125127
return null;
126128
}
@@ -129,6 +131,9 @@ protected CodegenModel processArrayItemSchema(String codegenModelName, CodegenPr
129131
final Schema itemsSchema = arraySchema.getItems();
130132
if (itemsSchema instanceof ComposedSchema) {
131133
final CodegenModel composedModel = this.processComposedSchema(codegenModelName + ARRAY_ITEMS_SUFFIX, codegenProperty.items, (ComposedSchema) itemsSchema, allModels);
134+
if (composedModel == null) {
135+
return null;
136+
}
132137
this.updatePropertyDataType(codegenProperty, composedModel.name, arraySchema);
133138
return composedModel;
134139
}
@@ -199,6 +204,21 @@ protected void updatePropertyDataType(CodegenProperty codegenProperty, String sc
199204
codegenProperty.setDatatype(this.codegenConfig.getTypeDeclaration(arraySchema));
200205
codegenProperty.setDatatypeWithEnum(codegenProperty.getDatatype());
201206

207+
codegenProperty.defaultValue = this.codegenConfig.toDefaultValue(arraySchema);
208+
codegenProperty.defaultValueWithParam = this.codegenConfig.toDefaultValueWithParam(codegenProperty.baseName, arraySchema);
209+
210+
arraySchema.setItems(items);
211+
}
212+
213+
protected void updateParentModel(CodegenModel codegenModel, String schemaName, ArraySchema arraySchema) {
214+
final Schema items = arraySchema.getItems();
215+
final Schema refSchema = new Schema();
216+
refSchema.set$ref("#/components/schemas/" + schemaName);
217+
arraySchema.setItems(refSchema);
218+
219+
this.codegenConfig.addParentContainer(codegenModel, codegenModel.name, arraySchema);
220+
codegenModel.defaultValue = this.codegenConfig.toDefaultValue(arraySchema);
221+
202222
arraySchema.setItems(items);
203223
}
204224
}

src/main/java/io/swagger/codegen/v3/generators/dotnet/DotNetSchemaHandler.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)