Skip to content

Commit 2a561d8

Browse files
authored
Merge pull request #590 from swagger-api/oneOf-property-creation-missed
One of property creation missed
2 parents 6a331b0 + e720e75 commit 2a561d8

File tree

16 files changed

+511
-377
lines changed

16 files changed

+511
-377
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,12 @@
208208
<artifactId>testng</artifactId>
209209
<version>${testng-version}</version>
210210
<scope>test</scope>
211+
<exclusions>
212+
<exclusion>
213+
<artifactId>snakeyaml</artifactId>
214+
<groupId>org.yaml</groupId>
215+
</exclusion>
216+
</exclusions>
211217
</dependency>
212218
<dependency>
213219
<groupId>org.slf4j</groupId>

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

Lines changed: 5 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.swagger.codegen.v3.CodegenProperty;
1717
import io.swagger.codegen.v3.CodegenResponse;
1818
import io.swagger.codegen.v3.CodegenSecurity;
19+
import io.swagger.codegen.v3.ISchemaHandler;
1920
import io.swagger.codegen.v3.SupportingFile;
2021
import io.swagger.codegen.v3.generators.examples.ExampleGenerator;
2122
import io.swagger.codegen.v3.generators.handlebars.BaseItemsHelper;
@@ -160,7 +161,6 @@ public abstract class DefaultCodegenConfig implements CodegenConfig {
160161
protected String httpUserAgent;
161162
protected Boolean hideGenerationTimestamp = true;
162163
protected TemplateEngine templateEngine = new HandlebarTemplateEngine(this);
163-
protected SchemaHandler schemaHandler = new SchemaHandler(this);
164164
// How to encode special characters like $
165165
// They are translated to words like "Dollar" and prefixed with '
166166
// Then translated back during JSON encoding and decoding
@@ -267,28 +267,6 @@ public Map<String, Object> postProcessAllModels(Map<String, Object> processedMod
267267
if (supportsInheritance) {
268268
processCodegenModels(allModels);
269269
}
270-
for (String modelName : allModels.keySet()) {
271-
final CodegenModel codegenModel = allModels.get(modelName);
272-
if (!codegenModel.vendorExtensions.containsKey("x-is-composed-model")) {
273-
continue;
274-
}
275-
List<String> modelNames = (List<String>) codegenModel.vendorExtensions.get("x-model-names");
276-
if (modelNames == null || modelNames.isEmpty()) {
277-
continue;
278-
}
279-
for (String name : modelNames) {
280-
final CodegenModel model = allModels.get(name);
281-
if (model == null) {
282-
continue;
283-
}
284-
if (model.interfaceModels == null) {
285-
model.interfaceModels = new ArrayList<>();
286-
}
287-
if (!model.interfaceModels.stream().anyMatch(value -> value.name.equalsIgnoreCase(modelName))) {
288-
model.interfaceModels.add(codegenModel);
289-
}
290-
}
291-
}
292270
return processedModels;
293271
}
294272

@@ -1299,12 +1277,6 @@ public CodegenModel fromModel(String name, Schema schema, Map<String, Schema> al
12991277
if (schema instanceof ArraySchema) {
13001278
codegenModel.getVendorExtensions().put(IS_ARRAY_MODEL_EXT_NAME, Boolean.TRUE);
13011279
codegenModel.getVendorExtensions().put(IS_CONTAINER_EXT_NAME, Boolean.TRUE);
1302-
1303-
final Schema items = ((ArraySchema) schema).getItems();
1304-
if (items != null && items instanceof ComposedSchema) {
1305-
schemaHandler.configureComposedModelFromSchemaItems(codegenModel, ((ComposedSchema) items));
1306-
}
1307-
13081280
codegenModel.arrayModelType = fromProperty(name, schema).complexType;
13091281
addParentContainer(codegenModel, name, schema);
13101282
}
@@ -1357,11 +1329,7 @@ else if (schema instanceof ComposedSchema) {
13571329
// parent model
13581330
final String parentName = getParentName(composed);
13591331
final Schema parent = StringUtils.isBlank(parentName) ? null : allDefinitions.get(parentName);
1360-
13611332
final List<Schema> allOf = composed.getAllOf();
1362-
final List<Schema> oneOf = composed.getOneOf();
1363-
final List<Schema> anyOf = composed.getAnyOf();
1364-
13651333
// interfaces (intermediate models)
13661334
if (allOf != null && !allOf.isEmpty()) {
13671335
for (int i = 0; i < allOf.size(); i++) {
@@ -1389,14 +1357,6 @@ else if (schema instanceof ComposedSchema) {
13891357
}
13901358
}
13911359
}
1392-
if (oneOf != null && !oneOf.isEmpty()) {
1393-
codegenModel.dataType = getSchemaType(composed);
1394-
this.schemaHandler.configureOneOfModel(codegenModel, oneOf);
1395-
}
1396-
if (anyOf != null && !anyOf.isEmpty()) {
1397-
codegenModel.dataType = getSchemaType(composed);
1398-
this.schemaHandler.configureAnyOfModel(codegenModel, anyOf);
1399-
}
14001360
if (parent != null) {
14011361
codegenModel.parentSchema = parentName;
14021362
codegenModel.parent = toModelName(parentName);
@@ -1704,9 +1664,6 @@ public CodegenProperty fromProperty(String name, Schema propertySchema) {
17041664
// handle inner property
17051665
CodegenProperty cp = fromProperty("inner", (Schema) propertySchema.getAdditionalProperties());
17061666
updatePropertyForMap(codegenProperty, cp);
1707-
} else if (propertySchema instanceof ComposedSchema) {
1708-
ComposedSchema composedProperty = (ComposedSchema) propertySchema;
1709-
this.schemaHandler.createCodegenModel(composedProperty, codegenProperty);
17101667
} else if (propertySchema instanceof MapSchema && hasTrueAdditionalProperties(propertySchema)) {
17111668

17121669
codegenProperty.getVendorExtensions().put(CodegenConstants.IS_CONTAINER_EXT_NAME, Boolean.TRUE);
@@ -3084,14 +3041,6 @@ private void addVars(CodegenModel codegenModel, List<CodegenProperty> vars, Map<
30843041
final CodegenProperty codegenProperty = fromProperty(key, propertySchema);
30853042
codegenProperty.required = mandatory.contains(key);
30863043

3087-
if (codegenProperty.vendorExtensions.containsKey("oneOf-model")) {
3088-
this.schemaHandler.configureOneOfModelFromProperty(codegenProperty, codegenModel);
3089-
}
3090-
3091-
if (codegenProperty.vendorExtensions.containsKey("anyOf-model")) {
3092-
this.schemaHandler.configureAnyOfModelFromProperty(codegenProperty, codegenModel);
3093-
}
3094-
30953044
if (propertySchema.get$ref() != null) {
30963045
if (this.openAPI == null) {
30973046
LOGGER.warn("open api utility object was not properly set.");
@@ -4284,4 +4233,8 @@ public void setIgnoreImportMapping(boolean ignoreImportMapping) {
42844233
public boolean defaultIgnoreImportMappingOption() {
42854234
return false;
42864235
}
4236+
4237+
public ISchemaHandler getSchemaHandler() {
4238+
return new SchemaHandler(this);
4239+
}
42874240
}

0 commit comments

Comments
 (0)