From: Robert Varga Date: Mon, 16 Nov 2015 22:59:28 +0000 (+0100) Subject: BUG-4638: do not rely on yang.model.util Types X-Git-Tag: release/beryllium~134 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=90d3d774a8a797efd27aee294a1230619cd42c94;hp=1ca40c5df43f39ce0bb4cfc080469adb5872da8c;p=yangtools.git BUG-4638: do not rely on yang.model.util Types 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 --- diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java index 27fedebae9..b3add283f4 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java @@ -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(); diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtilsTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtilsTest.java index c66b159220..e2d4c7f758 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtilsTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtilsTest.java @@ -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; } diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/retest/XmlStreamUtilsTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/retest/XmlStreamUtilsTest.java index b4fbd540bc..77a2a80ba0 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/retest/XmlStreamUtilsTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/retest/XmlStreamUtilsTest.java @@ -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; }