Skip to content

Commit 1a5909a

Browse files
authored
Merge branch 'master' into issue-444
2 parents a2bc5c2 + e2e3818 commit 1a5909a

File tree

964 files changed

+10965
-47867
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

964 files changed

+10965
-47867
lines changed

pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>io.swagger.codegen.v3</groupId>
1414
<artifactId>swagger-codegen-generators</artifactId>
15-
<version>1.0.19-SNAPSHOT</version>
15+
<version>1.0.23-SNAPSHOT</version>
1616
<packaging>jar</packaging>
1717

1818
<build>
@@ -252,10 +252,10 @@
252252
</dependency>
253253
</dependencies>
254254
<properties>
255-
<swagger-codegen-version>3.0.19-SNAPSHOT</swagger-codegen-version>
256-
<swagger-parser-version>2.0.18</swagger-parser-version>
257-
<swagger-core-version>2.1.1</swagger-core-version>
258-
<jackson-version>2.10.1</jackson-version>
255+
<swagger-codegen-version>3.0.23-SNAPSHOT</swagger-codegen-version>
256+
<swagger-parser-version>2.0.22</swagger-parser-version>
257+
<swagger-core-version>2.1.4</swagger-core-version>
258+
<jackson-version>2.10.3</jackson-version>
259259
<scala-version>2.11.1</scala-version>
260260
<felix-version>3.3.0</felix-version>
261261
<commons-io-version>2.4</commons-io-version>

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

Lines changed: 169 additions & 55 deletions
Large diffs are not rendered by default.

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

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
public class SchemaHandler implements ISchemaHandler {
1919

20+
public static final String ALL_OF_PREFFIX = "AllOf";
2021
public static final String ONE_OF_PREFFIX = "OneOf";
2122
public static final String ANY_OF_PREFFIX = "AnyOf";
2223
public static final String ARRAY_ITEMS_SUFFIX = "Items";
@@ -32,7 +33,6 @@ public SchemaHandler(DefaultCodegenConfig codegenConfig) {
3233
public void processComposedSchemas(CodegenModel codegenModel, Schema schema, Map<String, CodegenModel> allModels) {
3334
if (schema instanceof ComposedSchema) {
3435
this.addComposedModel(this.processComposedSchema(codegenModel, (ComposedSchema) schema, allModels));
35-
return;
3636
}
3737
if (schema instanceof ArraySchema) {
3838
this.addComposedModel(this.processArrayItemSchema(codegenModel, (ArraySchema) schema, allModels));
@@ -99,7 +99,13 @@ protected CodegenModel processComposedSchema(String name, ComposedSchema compose
9999
}
100100

101101
protected CodegenModel processComposedSchema(String codegenModelName, CodegenProperty codegenProperty, ComposedSchema composedSchema, Map<String, CodegenModel> allModels) {
102-
List<Schema> schemas = composedSchema.getOneOf();
102+
List<Schema> schemas = composedSchema.getAllOf();
103+
if (schemas != null && !schemas.isEmpty()) {
104+
final CodegenModel composedModel = codegenConfig.fromModel(ALL_OF_PREFFIX + codegenModelName, composedSchema);
105+
this.updatePropertyDataType(codegenProperty, composedModel);
106+
return composedModel;
107+
}
108+
schemas = composedSchema.getOneOf();
103109
CodegenModel composedModel = this.createComposedModel(ONE_OF_PREFFIX + codegenModelName, schemas);
104110
if (composedModel == null) {
105111
schemas = composedSchema.getAnyOf();
@@ -109,17 +115,17 @@ protected CodegenModel processComposedSchema(String codegenModelName, CodegenPro
109115
}
110116
}
111117
this.addInterfaces(schemas, composedModel, allModels);
112-
codegenProperty.datatype = composedModel.getClassname();
113-
codegenProperty.datatypeWithEnum = composedModel.getClassname();
114-
codegenProperty.baseType = composedModel.getClassname();
115-
codegenProperty.complexType = composedModel.getClassname();
118+
this.updatePropertyDataType(codegenProperty, composedModel);
116119
return composedModel;
117120
}
118121

119122
protected CodegenModel processArrayItemSchema(CodegenModel codegenModel, ArraySchema arraySchema, Map<String, CodegenModel> allModels) {
120123
final Schema itemsSchema = arraySchema.getItems();
121124
if (itemsSchema instanceof ComposedSchema) {
122125
final CodegenModel composedModel = this.processComposedSchema(codegenModel.name + ARRAY_ITEMS_SUFFIX, (ComposedSchema) itemsSchema, allModels);
126+
if (composedModel == null) {
127+
return null;
128+
}
123129
this.updateArrayModel(codegenModel, composedModel.name, arraySchema);
124130
return composedModel;
125131
}
@@ -221,4 +227,11 @@ protected void updateArrayModel(CodegenModel codegenModel, String schemaName, Ar
221227

222228
arraySchema.setItems(items);
223229
}
230+
231+
private void updatePropertyDataType(CodegenProperty codegenProperty, CodegenModel composedModel) {
232+
codegenProperty.datatype = composedModel.getClassname();
233+
codegenProperty.datatypeWithEnum = composedModel.getClassname();
234+
codegenProperty.baseType = composedModel.getClassname();
235+
codegenProperty.complexType = composedModel.getClassname();
236+
}
224237
}

0 commit comments

Comments
 (0)