BUG-4638: do not rely on yang.model.util Types 89/29789/4
authorRobert Varga <robert.varga@pantheon.sk>
Mon, 16 Nov 2015 22:59:28 +0000 (23:59 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 18 Nov 2015 13:09:12 +0000 (13:09 +0000)
Implementation and tests should not rely on a specific base type, but
should rather check for TypeDefinition interface.

Change-Id: Icd99b3f1f2c703a124c92169dbe60cabe2d2b797
Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtilsTest.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/retest/XmlStreamUtilsTest.java

index 27fedebae9f392b397b6c12668656673660b1402..b3add283f42c88510fef958b9974deeba071dba3 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.Leafref;
+import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
 
 class LeafRefContextTreeBuilder {
     private final SchemaContext schemaContext;
@@ -128,8 +128,8 @@ class LeafRefContextTreeBuilder {
             }
 
             // FIXME: fix case when type is e.g. typdef -> typedef -> leafref
-            if (type instanceof Leafref) {
-                final Leafref leafrefType = (Leafref) type;
+            if (type instanceof LeafrefTypeDefinition) {
+                final LeafrefTypeDefinition leafrefType = (LeafrefTypeDefinition) type;
                 final String leafRefPathString = leafrefType.getPathStatement()
                         .toString();
 
index c66b159220e16cf51ffed7ec41b173629ce067bc..e2d4c7f758a5fcf7a435baecc9db7c2b4eda7408 100644 (file)
@@ -40,10 +40,10 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.InstanceIdentifierType;
+import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
-import org.opendaylight.yangtools.yang.model.util.StringType;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 import org.w3c.dom.Document;
 
@@ -133,17 +133,17 @@ public class XmlStreamUtilsTest {
      */
     @Test
     public void testLeafRefRelativeChaining() {
-        getTargetNodeForLeafRef("leafname3",StringType.class);
+        getTargetNodeForLeafRef("leafname3", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefRelative() {
-        getTargetNodeForLeafRef("pointToStringLeaf",StringType.class);
+        getTargetNodeForLeafRef("pointToStringLeaf", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefAbsoluteWithSameTarget() {
-        getTargetNodeForLeafRef("absname",InstanceIdentifierType.class);
+        getTargetNodeForLeafRef("absname", InstanceIdentifierTypeDefinition.class);
     }
 
     /**
@@ -152,13 +152,15 @@ public class XmlStreamUtilsTest {
     @Ignore //ignored because this isn't implemented
     @Test
     public void testLeafRefWithDoublePointInPath() {
-        getTargetNodeForLeafRef("lf-with-double-point-inside",StringType.class);
+        getTargetNodeForLeafRef("lf-with-double-point-inside", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefRelativeAndAbsoluteWithSameTarget() {
-        final TypeDefinition<?> targetNodeForAbsname = getTargetNodeForLeafRef("absname",InstanceIdentifierType.class);
-        final TypeDefinition<?> targetNodeForRelname = getTargetNodeForLeafRef("relname",InstanceIdentifierType.class);
+        final TypeDefinition<?> targetNodeForAbsname = getTargetNodeForLeafRef("absname",
+            InstanceIdentifierTypeDefinition.class);
+        final TypeDefinition<?> targetNodeForRelname = getTargetNodeForLeafRef("relname",
+            InstanceIdentifierTypeDefinition.class);
         assertEquals(targetNodeForAbsname, targetNodeForRelname);
     }
 
@@ -168,7 +170,7 @@ public class XmlStreamUtilsTest {
         final LeafrefTypeDefinition leafrefTypedef = findLeafrefType(schemaNode);
         assertNotNull(leafrefTypedef);
         final TypeDefinition<?> targetBaseType = SchemaContextUtil.getBaseTypeForLeafRef(leafrefTypedef, schemaContext, schemaNode);
-        assertEquals("Wrong class found.", clas, targetBaseType.getClass());
+        assertTrue("Wrong class found.", clas.isInstance(targetBaseType));
         return targetBaseType;
     }
 
index b4fbd540bc8356c232d89f431dc3340d6e727637..77a2a80ba0c4e8912b310435500b574ab4924dd5 100644 (file)
@@ -41,10 +41,10 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.InstanceIdentifierType;
+import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
-import org.opendaylight.yangtools.yang.model.util.StringType;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.w3c.dom.Document;
 
@@ -133,17 +133,17 @@ public class XmlStreamUtilsTest {
      */
     @Test
     public void testLeafRefRelativeChaining() {
-        getTargetNodeForLeafRef("leafname3", StringType.class);
+        getTargetNodeForLeafRef("leafname3", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefRelative() {
-        getTargetNodeForLeafRef("pointToStringLeaf", StringType.class);
+        getTargetNodeForLeafRef("pointToStringLeaf", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefAbsoluteWithSameTarget() {
-        getTargetNodeForLeafRef("absname", InstanceIdentifierType.class);
+        getTargetNodeForLeafRef("absname", InstanceIdentifierTypeDefinition.class);
     }
 
     /**
@@ -153,13 +153,15 @@ public class XmlStreamUtilsTest {
     // ignored because this isn't implemented
     @Test
     public void testLeafRefWithDoublePointInPath() {
-        getTargetNodeForLeafRef("lf-with-double-point-inside", StringType.class);
+        getTargetNodeForLeafRef("lf-with-double-point-inside", StringTypeDefinition.class);
     }
 
     @Test
     public void testLeafRefRelativeAndAbsoluteWithSameTarget() {
-        final TypeDefinition<?> targetNodeForAbsname = getTargetNodeForLeafRef("absname", InstanceIdentifierType.class);
-        final TypeDefinition<?> targetNodeForRelname = getTargetNodeForLeafRef("relname", InstanceIdentifierType.class);
+        final TypeDefinition<?> targetNodeForAbsname = getTargetNodeForLeafRef("absname",
+            InstanceIdentifierTypeDefinition.class);
+        final TypeDefinition<?> targetNodeForRelname = getTargetNodeForLeafRef("relname",
+            InstanceIdentifierTypeDefinition.class);
         assertEquals(targetNodeForAbsname, targetNodeForRelname);
     }
 
@@ -170,7 +172,7 @@ public class XmlStreamUtilsTest {
         assertNotNull(leafrefTypedef);
         final TypeDefinition<?> targetBaseType = SchemaContextUtil.getBaseTypeForLeafRef(leafrefTypedef, schemaContext,
                 schemaNode);
-        assertEquals("Wrong class found.", clas, targetBaseType.getClass());
+        assertTrue("Wrong class found.", clas.isInstance(targetBaseType));
         return targetBaseType;
     }