Revert "Rework inlined union generation" 69/69769/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Mar 2018 16:26:45 +0000 (17:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Mar 2018 16:27:10 +0000 (17:27 +0100)
This reverts commit beef61289ca5b34724f8c8b73ca851f991af7bb7.

Change-Id: Ib1b60da6bae45202671582cd3648d6626d61064b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/GeneratedTOBuilder.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/BitAndUnionTOEnclosingTest.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal269Test.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal320Test.java [deleted file]
binding/mdsal-binding-generator-impl/src/test/resources/mdsal320.yang [deleted file]
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTOBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/CodegenGeneratedTOBuilder.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java
binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal320/mdsal320.yang [deleted file]

index a604022987f0396f7d49bd1055f8bb27d13e6058..277ca1f798490cca3fb3b74f9683e27e9bfbe8bc 100644 (file)
@@ -90,8 +90,6 @@ public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTO
      */
     void setBaseType(TypeDefinition<?> typeDef);
 
-    boolean isUnion();
-
     /**
      *
      * @param isUnion
index 5924d860d61d20344479da022c70819f427161fd..8a656eb0faefe13492e8fa14e90b47e15532142e 100644 (file)
@@ -1303,10 +1303,13 @@ abstract class AbstractTypeGenerator {
                 }
                 typeProvider.putReferencedType(leaf.getPath(), returnType);
             } else if (typeDef instanceof UnionTypeDefinition) {
-                final UnionTypeDefinition unionDef = (UnionTypeDefinition)typeDef;
-                returnType = addTOToTypeBuilder(unionDef, typeBuilder, leaf, parentModule);
-                // Store the inner type within the union so that we can find the reference for it
-                context.addInnerTypedefType(typeDef.getPath(), returnType);
+                GeneratedTOBuilder genTOBuilder = addTOToTypeBuilder((UnionTypeDefinition) typeDef, typeBuilder, leaf,
+                    parentModule);
+                if (genTOBuilder != null) {
+                    returnType = createReturnTypeForUnion(genTOBuilder, typeDef, typeBuilder, parentModule);
+                    // Store the inner type within the union so that we can find the reference for it
+                    context.addInnerTypedefType(typeDef.getPath(), returnType);
+                }
             } else if (typeDef instanceof BitsTypeDefinition) {
                 GeneratedTOBuilder genTOBuilder = addTOToTypeBuilder((BitsTypeDefinition) typeDef, typeBuilder, leaf,
                     parentModule);
@@ -1509,8 +1512,11 @@ abstract class AbstractTypeGenerator {
                 returnType = new ReferencedTypeImpl(enumBuilder.getIdentifier());
                 typeProvider.putReferencedType(node.getPath(), returnType);
             } else if (typeDef instanceof UnionTypeDefinition) {
-                final UnionTypeDefinition unionDef = (UnionTypeDefinition)typeDef;
-                returnType = addTOToTypeBuilder(unionDef, typeBuilder, node, parentModule);
+                final GeneratedTOBuilder genTOBuilder = addTOToTypeBuilder((UnionTypeDefinition)typeDef, typeBuilder,
+                    node, parentModule);
+                if (genTOBuilder != null) {
+                    returnType = createReturnTypeForUnion(genTOBuilder, typeDef, typeBuilder, parentModule);
+                }
             } else if (typeDef instanceof BitsTypeDefinition) {
                 final GeneratedTOBuilder genTOBuilder = addTOToTypeBuilder((BitsTypeDefinition)typeDef, typeBuilder,
                     node, parentModule);
@@ -1531,25 +1537,41 @@ abstract class AbstractTypeGenerator {
         return true;
     }
 
-    private Type createReturnTypeForUnion(final GeneratedTOBuilder genTOBuilder, final UnionTypeDefinition typeDef,
+    private Type createReturnTypeForUnion(final GeneratedTOBuilder genTOBuilder, final TypeDefinition<?> typeDef,
             final GeneratedTypeBuilder typeBuilder, final Module parentModule) {
-        final GeneratedTOBuilder returnTypeBuilder = typeProvider.newGeneratedTOBuilder(genTOBuilder.getIdentifier());
-        returnTypeBuilder.setIsUnion(true);
-        addCodegenInformation(returnTypeBuilder, parentModule, typeDef);
-        returnTypeBuilder.setSchemaPath(typeDef.getPath());
-        returnTypeBuilder.setModuleName(parentModule.getName());
-        final GeneratedTransferObject returnType = returnTypeBuilder.build();
+        final GeneratedTOBuilder returnType = typeProvider.newGeneratedTOBuilder(genTOBuilder.getIdentifier());
+
+        addCodegenInformation(returnType, parentModule, typeDef);
+        returnType.setSchemaPath(typeDef.getPath());
+        returnType.setModuleName(parentModule.getName());
 
         genTOBuilder.setTypedef(true);
         genTOBuilder.setIsUnion(true);
         AbstractTypeProvider.addUnitsToGenTO(genTOBuilder, typeDef.getUnits().orElse(null));
 
-        createUnionBuilder(genTOBuilder, typeBuilder, returnType, parentModule);
-        return returnType;
+
+
+        final GeneratedTOBuilder unionBuilder = createUnionBuilder(genTOBuilder, typeBuilder);
+
+
+        final MethodSignatureBuilder method = unionBuilder.addMethod("getDefaultInstance");
+        method.setReturnType(returnType);
+        method.addParameter(Types.STRING, "defaultValue");
+        method.setAccessModifier(AccessModifier.PUBLIC);
+        method.setStatic(true);
+
+        final Set<Type> types = typeProvider.getAdditionalTypes().get(parentModule);
+        if (types == null) {
+            typeProvider.getAdditionalTypes().put(parentModule,
+                    Sets.newHashSet(unionBuilder.build()));
+        } else {
+            types.add(unionBuilder.build());
+        }
+        return returnType.build();
     }
 
-    private void createUnionBuilder(final GeneratedTOBuilder genTOBuilder, final GeneratedTypeBuilder typeBuilder,
-            final GeneratedTransferObject returnType, final Module parentModule) {
+    private GeneratedTOBuilder createUnionBuilder(final GeneratedTOBuilder genTOBuilder,
+            final GeneratedTypeBuilder typeBuilder) {
         final StringBuilder sb = new StringBuilder();
 
         // Append enclosing path hierarchy without dots
@@ -1573,20 +1595,7 @@ abstract class AbstractTypeGenerator {
         final GeneratedTOBuilder unionBuilder = typeProvider.newGeneratedTOBuilder(
             JavaTypeName.create(typeBuilder.getPackageName(), sb.toString()));
         unionBuilder.setIsUnionBuilder(true);
-
-        final MethodSignatureBuilder method = unionBuilder.addMethod("getDefaultInstance");
-        method.setReturnType(returnType);
-        method.addParameter(Types.STRING, "defaultValue");
-        method.setAccessModifier(AccessModifier.PUBLIC);
-        method.setStatic(true);
-
-        final GeneratedTransferObject unionBuilderType = unionBuilder.build();
-        final Set<Type> types = typeProvider.getAdditionalTypes().get(parentModule);
-        if (types == null) {
-            typeProvider.getAdditionalTypes().put(parentModule, Sets.newHashSet(unionBuilderType));
-        } else {
-            types.add(unionBuilderType);
-        }
+        return unionBuilder;
     }
 
     private GeneratedTypeBuilder addDefaultInterfaceDefinition(final ModuleContext context,
@@ -1600,6 +1609,7 @@ abstract class AbstractTypeGenerator {
         return addDefaultInterfaceDefinition(packageName, schemaNode, childOf, context);
     }
 
+
     /**
      * Instantiates generated type builder with <code>packageName</code> and
      * <code>schemaNode</code>.
@@ -1896,7 +1906,7 @@ abstract class AbstractTypeGenerator {
      *            parent module
      * @return generated TO builder for <code>typeDef</code>
      */
-    private Type addTOToTypeBuilder(final UnionTypeDefinition typeDef,
+    private GeneratedTOBuilder addTOToTypeBuilder(final UnionTypeDefinition typeDef,
             final GeneratedTypeBuilder typeBuilder, final DataSchemaNode leaf, final Module parentModule) {
         final List<GeneratedTOBuilder> types = typeProvider.provideGeneratedTOBuildersForUnionTypeDef(
             typeBuilder.getIdentifier().createEnclosed(BindingMapping.getClassName(leaf.getQName())),
@@ -1905,17 +1915,17 @@ abstract class AbstractTypeGenerator {
         checkState(!types.isEmpty(), "No GeneratedTOBuilder objects generated from union %s", typeDef);
         final List<GeneratedTOBuilder> genTOBuilders = new ArrayList<>(types);
         final GeneratedTOBuilder resultTOBuilder = types.remove(0);
-        types.forEach(resultTOBuilder::addEnclosingTransferObject);
-        genTOBuilders.forEach(typeBuilder::addEnclosingTransferObject);
-
-        for (GeneratedTOBuilder builder : types) {
-            if (builder.isUnion()) {
-                final GeneratedTransferObject type = builder.build();
-                createUnionBuilder(builder, typeBuilder, type, parentModule);
-            }
+        for (final GeneratedTOBuilder genTOBuilder : types) {
+            resultTOBuilder.addEnclosingTransferObject(genTOBuilder);
         }
 
-        return createReturnTypeForUnion(resultTOBuilder, typeDef, typeBuilder, parentModule);
+        final GeneratedPropertyBuilder genPropBuilder = resultTOBuilder.addProperty("value");
+        genPropBuilder.setReturnType(Types.CHAR_ARRAY);
+        resultTOBuilder.addEqualsIdentity(genPropBuilder);
+        resultTOBuilder.addHashIdentity(genPropBuilder);
+        resultTOBuilder.addToStringProperty(genPropBuilder);
+        processEnclosedTOBuilderes(typeBuilder, genTOBuilders);
+        return resultTOBuilder;
     }
 
     /**
@@ -1948,6 +1958,14 @@ abstract class AbstractTypeGenerator {
 
     }
 
+    private static GeneratedTOBuilder processEnclosedTOBuilderes(final GeneratedTypeBuilder typeBuilder,
+            final List<GeneratedTOBuilder> genTOBuilders) {
+        for (final GeneratedTOBuilder genTOBuilder : genTOBuilders) {
+            typeBuilder.addEnclosingTransferObject(genTOBuilder);
+        }
+        return genTOBuilders.get(0);
+    }
+
     /**
      * Adds the implemented types to type builder.
      *
index 6e2a0dadae951208b48d7a1a7fbd1c4d4983ee77..8ece98b359855d10cef506e59905f8231e1d0f87 100644 (file)
@@ -898,10 +898,11 @@ public abstract class AbstractTypeProvider implements TypeProvider {
     private GeneratedTransferObject wrapJavaTypeIntoTO(final String basePackageName, final TypeDefinition<?> typedef,
             final Type javaType, final String moduleName) {
         Preconditions.checkNotNull(javaType, "javaType cannot be null");
+        final String propertyName = "value";
 
         final GeneratedTOBuilder genTOBuilder = typedefToTransferObject(basePackageName, typedef, moduleName);
         genTOBuilder.setRestrictions(BindingGeneratorUtil.getRestrictions(typedef));
-        final GeneratedPropertyBuilder genPropBuilder = genTOBuilder.addProperty("value");
+        final GeneratedPropertyBuilder genPropBuilder = genTOBuilder.addProperty(propertyName);
         genPropBuilder.setReturnType(javaType);
         genTOBuilder.addEqualsIdentity(genPropBuilder);
         genTOBuilder.addHashIdentity(genPropBuilder);
@@ -934,6 +935,8 @@ public abstract class AbstractTypeProvider implements TypeProvider {
 
         final GeneratedTOBuilder resultTOBuilder = builders.remove(0);
         builders.forEach(resultTOBuilder::addEnclosingTransferObject);
+
+        resultTOBuilder.addProperty("value").setReturnType(Types.CHAR_ARRAY);
         return resultTOBuilder;
     }
 
@@ -964,16 +967,12 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         final Module module = findParentModule(schemaContext, parentNode);
 
         final GeneratedTOBuilder unionGenTOBuilder = newGeneratedTOBuilder(typeName);
-        unionGenTOBuilder.setIsUnion(true);
-        final GeneratedPropertyBuilder genPropBuilder = unionGenTOBuilder.addProperty("value");
-        genPropBuilder.setReturnType(Types.CHAR_ARRAY);
-        unionGenTOBuilder.addEqualsIdentity(genPropBuilder);
-        unionGenTOBuilder.addHashIdentity(genPropBuilder);
-        unionGenTOBuilder.addToStringProperty(genPropBuilder);
         unionGenTOBuilder.setSchemaPath(typedef.getPath());
         unionGenTOBuilder.setModuleName(module.getName());
         addCodegenInformation(unionGenTOBuilder, typedef);
+
         generatedTOBuilders.add(unionGenTOBuilder);
+        unionGenTOBuilder.setIsUnion(true);
 
         // Pattern string is the key, XSD regex is the value. The reason for this choice is that the pattern carries
         // also negation information and hence guarantees uniqueness.
@@ -1037,7 +1036,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         final GeneratedPropertyBuilder propertyBuilder;
         propertyBuilder = parentUnionGenTOBuilder.addProperty(BindingMapping.getPropertyName(
             newTOBuilderName.simpleName()));
-        propertyBuilder.setReturnType(subUnionGenTOBUilders.get(0).build());
+        propertyBuilder.setReturnType(subUnionGenTOBUilders.get(0));
         parentUnionGenTOBuilder.addEqualsIdentity(propertyBuilder);
         parentUnionGenTOBuilder.addToStringProperty(propertyBuilder);
 
index 79bb9adb8d9320ef103d604f8f5eda4a98d49192..8a1817a459e9e659bdc078132df52ae7b6fee02a 100644 (file)
@@ -89,12 +89,11 @@ public class BitAndUnionTOEnclosingTest {
                 "org.opendaylight.yang.gen.v1.urn.bit.union.in.leaf.rev130626.ParentContainer",
                 lf1Leaf.getIdentifier().immediatelyEnclosingClass().get().toString());
 
-        assertEquals("Lf generated TO has incorrect number of properties", 5, lf1Leaf.getProperties().size());
+        assertEquals("Lf generated TO has incorrect number of properties", 4, lf1Leaf.getProperties().size());
         containsAttributes(lf1Leaf, true, true, true, new NameTypePattern("uint32", "Long"));
         containsAttributes(lf1Leaf, true, true, true, new NameTypePattern("int8", "Byte"));
         containsAttributes(lf1Leaf, true, true, true, new NameTypePattern("string", "String"));
         containsAttributes(lf1Leaf, true, false, true, new NameTypePattern("lf2", "Lf2"));
-        containsAttributes(lf1Leaf, true, false, true, new NameTypePattern("value", "char[]"));
 
         // nested types in leaf, contains Lf2?
         assertNotNull("Lf2 TO wasn't found.", lf2Leaf);
@@ -103,10 +102,9 @@ public class BitAndUnionTOEnclosingTest {
                 "org.opendaylight.yang.gen.v1.urn.bit.union.in.leaf.rev130626.ParentContainer",
                 lf2Leaf.getIdentifier().immediatelyEnclosingClass().get().toString());
 
-        assertEquals("Lf generated TO has incorrect number of properties", 3, lf2Leaf.getProperties().size());
+        assertEquals("Lf generated TO has incorrect number of properties", 2, lf2Leaf.getProperties().size());
         containsAttributes(lf2Leaf, true, true, true, new NameTypePattern("string", "String"));
         containsAttributes(lf2Leaf, true, true, true, new NameTypePattern("uint64", "BigInteger"));
-        containsAttributes(lf2Leaf, true, true, true, new NameTypePattern("value", "char[]"));
     }
 
     @Test
@@ -163,13 +161,12 @@ public class BitAndUnionTOEnclosingTest {
         assertEquals("TypeUnion1 has incorrect package name.",
                 "org.opendaylight.yang.gen.v1.urn.bit.union.in.leaf.rev130626", typeUnion1.getPackageName());
 
-        assertEquals("TypeUnion1 generated TO has incorrect number of properties", 5, typeUnion1.getProperties().size());
+        assertEquals("TypeUnion1 generated TO has incorrect number of properties", 4, typeUnion1.getProperties().size());
 
         containsAttributes(typeUnion1, true, true, true, new NameTypePattern("uint32", "Long"));
         containsAttributes(typeUnion1, true, true, true, new NameTypePattern("int8", "Byte"));
         containsAttributes(typeUnion1, true, true, true, new NameTypePattern("string", "String"));
         containsAttributes(typeUnion1, true, false, true, new NameTypePattern("typeUnion2", "TypeUnion2"));
-        containsAttributes(typeUnion1, true, false, true, new NameTypePattern("value", "char[]"));
 
         assertNotNull("TypeUnion2 TO wasn't found.", typeUnion2);
         assertEquals("TypeUnion2 TO has incorrect number of occurences.", 1, typeUnion2Counter);
@@ -177,10 +174,10 @@ public class BitAndUnionTOEnclosingTest {
         assertEquals("TypeUnion2 has incorrect package name.",
                 "org.opendaylight.yang.gen.v1.urn.bit.union.in.leaf.rev130626", typeUnion2.getPackageName());
 
-        assertEquals("TypeUnion2 generated TO has incorrect number of properties", 3, typeUnion2.getProperties().size());
+        assertEquals("TypeUnion2 generated TO has incorrect number of properties", 2, typeUnion2.getProperties().size());
         containsAttributes(typeUnion2, true, true, true, new NameTypePattern("string", "String"));
         containsAttributes(typeUnion2, true, true, true, new NameTypePattern("uint64", "BigInteger"));
-        containsAttributes(typeUnion2, true, true, true, new NameTypePattern("value", "char[]"));
+
     }
 
     @Test
index 5bd0e927a80a2d26ba69653808cfeb2458875b77..0da4572c6eb22f3bfa37d0ffd8dfe665c8f3f51c 100644 (file)
@@ -37,7 +37,6 @@ public class Mdsal269Test {
         assertTrue(mplsLabelType instanceof GeneratedTransferObject);
         final GeneratedTransferObject gto = (GeneratedTransferObject) mplsLabelType;
         final Iterator<GeneratedProperty> it = gto.getEqualsIdentifiers().iterator();
-        final GeneratedProperty value = it.next();
         final GeneratedProperty special = it.next();
         final GeneratedProperty general = it.next();
         assertFalse(it.hasNext());
@@ -48,8 +47,5 @@ public class Mdsal269Test {
 
         assertEquals("mplsLabelSpecialPurpose", special.getName());
         assertEquals("Type (java.lang.Class)", special.getReturnType().toString());
-
-        assertEquals("value", value.getName());
-        assertEquals("Type (char[])", value.getReturnType().toString());
     }
 }
diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal320Test.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal320Test.java
deleted file mode 100644 (file)
index a5e3ee8..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.mdsal.binding.generator.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import com.google.common.collect.Iterables;
-import java.util.List;
-import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
-import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
-import org.opendaylight.mdsal.binding.model.api.MethodSignature;
-import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
-
-public class Mdsal320Test {
-
-    @Test
-    public void mdsal320Test() {
-        final SchemaContext context = YangParserTestUtils.parseYangResource("/mdsal320.yang");
-
-        final List<Type> generateTypes = new BindingGeneratorImpl().generateTypes(context);
-        assertNotNull(generateTypes);
-        assertEquals(4, generateTypes.size());
-
-        final Type fooType = generateTypes.stream().filter(type -> type.getFullyQualifiedName()
-            .equals("org.opendaylight.yang.gen.v1.urn.odl.yt320.norev.Foo")).findFirst().get();
-        assertTrue(fooType instanceof GeneratedType);
-        final GeneratedType foo = (GeneratedType) fooType;
-
-        GeneratedTransferObject bar = null;
-        GeneratedTransferObject bar1 = null;
-        for (GeneratedType enc : foo.getEnclosedTypes()) {
-            switch (enc.getName()) {
-                case "Bar":
-                    assertTrue(enc instanceof GeneratedTransferObject);
-                    bar = (GeneratedTransferObject) enc;
-                    break;
-                case "Bar1":
-                    assertTrue(enc instanceof GeneratedTransferObject);
-                    bar1 = (GeneratedTransferObject) enc;
-                    break;
-                default:
-                    throw new IllegalStateException("Unexpected type " + enc);
-            }
-        }
-        assertNotNull(bar);
-        assertTrue(bar.isUnionType());
-        assertNotNull(bar1);
-        assertTrue(bar1.isUnionType());
-
-        final MethodSignature getBar = Iterables.getOnlyElement(foo.getMethodDefinitions());
-        final Type getBarType = getBar.getReturnType();
-        assertTrue(getBarType instanceof GeneratedTransferObject);
-        final GeneratedTransferObject getBarTO = (GeneratedTransferObject) getBarType;
-        assertTrue(getBarTO.isUnionType());
-        assertEquals(bar, getBarTO);
-
-        final GeneratedProperty bar1Prop = bar.getProperties().stream().filter(prop -> "bar1".equals(prop.getName()))
-                .findFirst().get();
-        final Type bar1PropRet = bar1Prop.getReturnType();
-        assertEquals(bar1, bar1PropRet);
-    }
-}
diff --git a/binding/mdsal-binding-generator-impl/src/test/resources/mdsal320.yang b/binding/mdsal-binding-generator-impl/src/test/resources/mdsal320.yang
deleted file mode 100644 (file)
index 3c1f66c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-module yt320 {
-    namespace "urn:odl:yt320";
-    prefix yt320;
-
-    container foo {
-        leaf bar {
-            type union {
-                type enumeration {
-                    enum "foo";
-                }
-                type string {
-                    length 2;
-                }
-                type union {
-                    type enumeration {
-                        enum bar;
-                    }
-                    type string {
-                        length 1;
-                    }
-                }
-            }
-        }
-    }
-}
-
index fb2378cef1dccc68ab70c33029ab400eceda4a1d..c6786ece75d0181695e3e145413ad7ff92558220 100644 (file)
@@ -12,9 +12,9 @@ import java.util.Collections;
 import java.util.List;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
 import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
 import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
@@ -132,11 +132,6 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
         this.isUnionType = isUnion;
     }
 
-    @Override
-    public final boolean isUnion() {
-        return isUnionType;
-    }
-
     @Override
     public final void setIsUnionBuilder(final boolean isUnionTypeBuilder) {
         this.isUnionTypeBuilder = isUnionTypeBuilder;
index 36cd6d2c201f106cc1fa2c5e1aef9ddcf6357335..798142e3a0e5e5ec787a06b1e8eee8f647ab18c2 100644 (file)
@@ -9,8 +9,8 @@ package org.opendaylight.mdsal.binding.model.util.generated.type.builder;
 
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.Restrictions;
+import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -76,7 +76,7 @@ public final class CodegenGeneratedTOBuilder extends AbstractGeneratedTOBuilder
         private final String moduleName;
         private final SchemaPath schemaPath;
 
-        GTO(final CodegenGeneratedTOBuilder builder) {
+        public GTO(final CodegenGeneratedTOBuilder builder) {
             super(builder);
             this.restrictions = builder.restrictions;
             this.reference = builder.reference;
index e9d9802c45077a560095642b32ba4d114b18f10e..172751f570302c68c5b112ca5b386bf00efc041a 100644 (file)
@@ -636,16 +636,6 @@ public class CompilationTest extends BaseCompilationTest {
         CompilationTestUtils.cleanUp(sourcesOutputDir, compiledOutputDir);
     }
 
-
-    @Test
-    public void twoNestedUnionsTest() throws Exception {
-        final File sourcesOutputDir = CompilationTestUtils.generatorOutput("mdsal320");
-        final File compiledOutputDir = CompilationTestUtils.compilerOutput("mdsal320");
-        generateTestSources("/compilation/mdsal320", sourcesOutputDir);
-        CompilationTestUtils.testCompilation(sourcesOutputDir, compiledOutputDir);
-        CompilationTestUtils.cleanUp(sourcesOutputDir, compiledOutputDir);
-    }
-
     private void generateTestSources(final String resourceDirPath, final File sourcesOutputDir)
             throws IOException, URISyntaxException {
         final List<File> sourceFiles = CompilationTestUtils.getSourceFiles(resourceDirPath);
diff --git a/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal320/mdsal320.yang b/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal320/mdsal320.yang
deleted file mode 100644 (file)
index 3c1f66c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-module yt320 {
-    namespace "urn:odl:yt320";
-    prefix yt320;
-
-    container foo {
-        leaf bar {
-            type union {
-                type enumeration {
-                    enum "foo";
-                }
-                type string {
-                    length 2;
-                }
-                type union {
-                    type enumeration {
-                        enum bar;
-                    }
-                    type string {
-                        length 1;
-                    }
-                }
-            }
-        }
-    }
-}
-