From 637d60d1ff4c94922e6aecb661486d99b5f70972 Mon Sep 17 00:00:00 2001 From: William Cheng <wing328hk@gmail.com> Date: Wed, 9 Jan 2019 10:50:02 +0800 Subject: [PATCH] Better support for composed schema (allOf) (#1842) * better support for composed schema * remove commented code --- .../openapitools/codegen/DefaultCodegen.java | 17 ++++++++++------- .../codegen/languages/AbstractJavaCodegen.java | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index a56134e5070a..875bcf8f1d9f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -1841,7 +1841,7 @@ private CodegenDiscriminator createDiscriminator(String schemaName, Schema .map(s -> ModelUtils.getSimpleRef(s.get$ref())) .collect(Collectors.toSet()); if (parentSchemas.contains(schemaName)) { - discriminator.getMappedModels().add(new MappedModel(childName, childName)); + discriminator.getMappedModels().add(new MappedModel(childName, toModelName(childName))); } } }); @@ -1864,18 +1864,21 @@ protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Sc protected void addProperties(Map<String, Schema> properties, List<String> required, Schema schema, Map<String, Schema> allSchemas) { if (schema instanceof ComposedSchema) { - throw new RuntimeException("Please report the issue: Cannot process Composed Schema in addProperties: " + schema); - /* ComposedSchema composedSchema = (ComposedSchema) schema; - if (composedSchema.getAllOf() == null) { - return; - } for (Schema component : composedSchema.getAllOf()) { addProperties(properties, required, component, allSchemas); } + + if (composedSchema.getOneOf() != null) { + throw new RuntimeException("Please report the issue: Cannot process oneOf (Composed Scheme) in addProperties: " + schema); + } + + if (composedSchema.getAnyOf() != null) { + throw new RuntimeException("Please report the issue: Cannot process anyOf (Composed Schema) in addProperties: " + schema); + } + return; - */ } Schema unaliasSchema = ModelUtils.unaliasSchema(globalSchemas, schema); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index cdf0120dd1a4..7d20b31e8ff1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -117,6 +117,8 @@ public AbstractJavaCodegen() { setReservedWordsLowerCase( Arrays.asList( + // special words + "object", // used as internal variables, can collide with parameter names "localVarPath", "localVarQueryParams", "localVarCollectionQueryParams", "localVarHeaderParams", "localVarFormParams", "localVarPostBody",