diff --git a/src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java b/src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java index 62c41a27c5..697c30c6c8 100644 --- a/src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java +++ b/src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java @@ -1276,8 +1276,6 @@ public CodegenModel fromModel(String name, Schema schema, Map al } codegenModel.getVendorExtensions().put(CodegenConstants.IS_ALIAS_EXT_NAME, typeAliases.containsKey(name)); - codegenModel.discriminator = schema.getDiscriminator(); - if (schema.getXml() != null) { codegenModel.xmlPrefix = schema.getXml().getPrefix(); codegenModel.xmlNamespace = schema.getXml().getNamespace(); @@ -1342,6 +1340,14 @@ else if (schema instanceof ComposedSchema) { final List allOf = composed.getAllOf(); // interfaces (intermediate models) if (allOf != null && !allOf.isEmpty()) { + + if (schema.getDiscriminator() != null) { + codegenModel.discriminator = schema.getDiscriminator(); + if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) { + codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName())); + } + } + for (int i = 0; i < allOf.size(); i++) { if (i == 0 && !copyFistAllOfProperties) { continue; diff --git a/src/test/java/io/swagger/codegen/v3/generators/swift/Swift3ModelTest.java b/src/test/java/io/swagger/codegen/v3/generators/swift/Swift3ModelTest.java index 0b9086d734..129e96c295 100644 --- a/src/test/java/io/swagger/codegen/v3/generators/swift/Swift3ModelTest.java +++ b/src/test/java/io/swagger/codegen/v3/generators/swift/Swift3ModelTest.java @@ -31,7 +31,6 @@ public void simpleModelTest() { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a sample model"); Assert.assertEquals(cm.vars.size(), 7); - Assert.assertEquals(cm.discriminator.getPropertyName(),"test"); final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "id"); @@ -119,8 +118,7 @@ private Schema getSimpleSchema() { .addProperties("uuid", new UUIDSchema()) .addProperties("dateOfBirth", new DateSchema()) .addRequiredItem("id") - .addRequiredItem("name") - .discriminator(new Discriminator().propertyName("test")); + .addRequiredItem("name"); } } diff --git a/src/test/java/io/swagger/codegen/v3/generators/swift/Swift4ModelTest.java b/src/test/java/io/swagger/codegen/v3/generators/swift/Swift4ModelTest.java index 3948ab87f4..c4171fde4a 100644 --- a/src/test/java/io/swagger/codegen/v3/generators/swift/Swift4ModelTest.java +++ b/src/test/java/io/swagger/codegen/v3/generators/swift/Swift4ModelTest.java @@ -31,7 +31,6 @@ public void simpleModelTest() { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a sample model"); Assert.assertEquals(cm.vars.size(), 7); - Assert.assertEquals(cm.discriminator.getPropertyName(),"test"); final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "id"); @@ -119,8 +118,7 @@ private Schema getSimpleSchema() { .addProperties("uuid", new UUIDSchema()) .addProperties("dateOfBirth", new DateSchema()) .addRequiredItem("id") - .addRequiredItem("name") - .discriminator(new Discriminator().propertyName("test")); + .addRequiredItem("name"); } }