Revert "BUG-1097: implemented check for null or empty list in builder classes."
authorTony Tkacik <ttkacik@cisco.com>
Mon, 21 Jul 2014 14:03:50 +0000 (14:03 +0000)
committerTony Tkacik <ttkacik@cisco.com>
Mon, 21 Jul 2014 14:03:50 +0000 (14:03 +0000)
This reverts commit 883ae26ee98953a5df7cc0956afa807a82d58a3a
which was breakage in Binding Specification and should not
be merged without community-wide discussion.

Change-Id: Ifda1124d974b1ce299551be80a84c45b85b4155a
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend
code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTest.java
code-generator/binding-java-api-generator/src/test/resources/compilation/bug1097/foo.yang [deleted file]

index 8b465758d0691ca67c386b5c7dbef63104b3cfb9..3d0d19c436b2889f9eb5b15f664c88580d149b49 100644 (file)
@@ -31,7 +31,6 @@ import java.util.Collection
 import org.opendaylight.yangtools.yang.binding.Identifiable
 import com.google.common.collect.Range
 import org.opendaylight.yangtools.sal.binding.model.api.ConcreteType
-import com.google.common.collect.ImmutableList
 
 /**
  * Template for generating JAVA builder classes. 
@@ -537,15 +536,7 @@ class BuilderTemplate extends BaseTemplate {
                 }
             «ENDIF»
             «FOR field : allProps»
-                «IF List.canonicalName.equals(field.returnType.fullyQualifiedName)»
-                    if (base.«field.getterMethodName»() == null || base.«field.getterMethodName»().isEmpty()) {
-                        this.«field.fieldName» = «Collections.importedName».emptyList();
-                    } else {
-                        this.«field.fieldName» = «ImmutableList.importedName».copyOf(base.«field.getterMethodName»());
-                    }
-                «ELSE»
-                    this.«field.fieldName» = base.«field.getterMethodName»();
-                «ENDIF»
+                this.«field.fieldName» = base.«field.getterMethodName»();
             «ENDFOR»
             «IF augmentField != null»
                 «IF !impl»if (base instanceof «type.name»«IMPL») {«ENDIF»
@@ -743,3 +734,4 @@ class BuilderTemplate extends BaseTemplate {
     '''
 
 }
+
index db2fa44ac5abcb9f0c1b05ceebdcfd330f2a34e4..635b3f3447b42eda4b79922f97df6c390500b5f4 100644 (file)
@@ -28,8 +28,6 @@ import static org.opendaylight.yangtools.sal.java.api.generator.test.Compilation
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.getSourceFiles;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.testCompilation;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Range;
 import java.io.File;
 import java.lang.annotation.Annotation;
@@ -42,11 +40,9 @@ import java.math.BigInteger;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import org.junit.Test;
-import org.mockito.Mockito;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.sal.java.api.generator.GeneratorJavaFile;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
@@ -570,51 +566,6 @@ public class CompilationTest extends BaseCompilationTest {
         cleanUp(sourcesOutputDir, compiledOutputDir);
     }
 
-    @Test
-    public void testBug1097() throws Exception {
-        final File sourcesOutputDir = new File(GENERATOR_OUTPUT_PATH + FS + "bug1097");
-        assertTrue("Failed to create test file '" + sourcesOutputDir + "'", sourcesOutputDir.mkdir());
-        final File compiledOutputDir = new File(COMPILER_OUTPUT_PATH + FS + "bug1097");
-        assertTrue("Failed to create test file '" + compiledOutputDir + "'", compiledOutputDir.mkdir());
-
-        generateTestSources("/compilation/bug1097", sourcesOutputDir);
-
-        // Test if sources are compilable
-        testCompilation(sourcesOutputDir, compiledOutputDir);
-
-        ClassLoader loader = new URLClassLoader(new URL[] { compiledOutputDir.toURI().toURL() });
-        Class<?> linkClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.Link", true, loader);
-        Class<?> linkBuilderClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.LinkBuilder", true, loader);
-        Class<?> nodeClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.link.Node", true, loader);
-
-        // Test LinkBuilder without setting any value
-        Object linkBuilder = linkBuilderClass.newInstance();
-        Method build = linkBuilderClass.getDeclaredMethod("build");
-        Object link = build.invoke(linkBuilder);
-        Method getNodes = linkClass.getDeclaredMethod("getNode");
-        Object node = getNodes.invoke(link);
-        assertEquals(Collections.emptyList(), node);
-
-        // Test LinkBuilder with setting an empty list
-        linkBuilder = linkBuilderClass.newInstance();
-        Method setNode = linkBuilderClass.getDeclaredMethod("setNode", List.class);
-        setNode.invoke(linkBuilder, Collections.emptyList());
-        link = build.invoke(linkBuilder);
-        node = getNodes.invoke(link);
-        assertEquals(Collections.emptyList(), node);
-
-        // Test LinkBuilder with setting list with values
-        linkBuilder = linkBuilderClass.newInstance();
-        List<?> testList = Lists.newArrayList(Mockito.mock(nodeClass), Mockito.mock(nodeClass));
-        setNode.invoke(linkBuilder, testList);
-        link = build.invoke(linkBuilder);
-        node = getNodes.invoke(link);
-        assertEquals(testList, node);
-        assertTrue(node instanceof ImmutableList);
-
-        cleanUp(sourcesOutputDir, compiledOutputDir);
-    }
-
     @Test
     public void classNamesColisionTest() throws Exception {
         final File sourcesOutputDir = new File(GENERATOR_OUTPUT_PATH + FS + "class-name-collision");
diff --git a/code-generator/binding-java-api-generator/src/test/resources/compilation/bug1097/foo.yang b/code-generator/binding-java-api-generator/src/test/resources/compilation/bug1097/foo.yang
deleted file mode 100644 (file)
index fc0c4e2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module foo {
-  namespace "urn:test:foo";
-  prefix foo;
-
-  revision 2014-07-17 {
-  }
-
-
-    container link {
-        list node {
-            leaf id {
-                type string;
-            }
-        }
-    }
-
-}