diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index de5b7013775..703d6490b15 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -460,7 +460,7 @@ public class ModelUtils { return (schema instanceof ObjectSchema) || // must not be a map - (SchemaTypeUtil.OBJECT_TYPE.equals(schema.getType()) && !(schema instanceof MapSchema)) || + (SchemaTypeUtil.OBJECT_TYPE.equals(schema.getType()) && !(ModelUtils.isMapSchema(schema))) || // must have at least one property (schema.getType() == null && schema.getProperties() != null && !schema.getProperties().isEmpty()); } @@ -509,10 +509,6 @@ public class ModelUtils { * @return true if the specified schema is a Composed schema. */ public static boolean isComplexComposedSchema(Schema schema) { - if (!(schema instanceof ComposedSchema)) { - return false; - } - int count = 0; if (schema.getAllOf() != null && !schema.getAllOf().isEmpty()) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java index 76bd51b43a5..d99c2fa678c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java @@ -384,5 +384,11 @@ public class ModelUtilsTest { Assert.assertFalse(anyof2.getAnyOf().isEmpty()); Assert.assertTrue(ModelUtils.hasAnyOf(anyof2)); Assert.assertTrue(ModelUtils.isAnyOf(anyof2)); + + Schema objectSchema = ModelUtils.getSchema(openAPI, "ObjectSchema"); + Assert.assertTrue(ModelUtils.isMapSchema(objectSchema)); + + Schema complexComposedSchema = ModelUtils.getSchema(openAPI, "ComplexComposedSchema"); + Assert.assertTrue(ModelUtils.isComplexComposedSchema(complexComposedSchema)); } } diff --git a/modules/openapi-generator/src/test/resources/3_1/schema.yaml b/modules/openapi-generator/src/test/resources/3_1/schema.yaml index b2eb2aa8d1c..1c3137ecf11 100644 --- a/modules/openapi-generator/src/test/resources/3_1/schema.yaml +++ b/modules/openapi-generator/src/test/resources/3_1/schema.yaml @@ -64,4 +64,19 @@ components: oneof1: oneOf: - type: string - - type: integer \ No newline at end of file + - type: integer + ObjectSchema: + type: object + additionalProperties: false + properties: + name: + type: string + address: + type: string + ComplexComposedSchema: + oneOf: + - type: string + - type: integer + anyOf: + - type: string + - type: number \ No newline at end of file