BUG-1704: expose proper SchemaNode subclasses 65/10865/1
authorRobert Varga <rovarga@cisco.com>
Fri, 5 Sep 2014 21:20:06 +0000 (23:20 +0200)
committerRobert Varga <rovarga@cisco.com>
Fri, 5 Sep 2014 21:30:01 +0000 (23:30 +0200)
SchemaTracker users may actually need the correct subclasses. Since the
tracker already does the proper checks, this is a simple, compatible
change.

Change-Id: I24e2bb0f7a0598435879d5ed234bc4ab75da571a
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/SchemaTracker.java

index 39181ae49fbf93ae556d1a4e092b671f26cfb2f9..16018df8c3ad177dad6cb26166b860b628eee89f 100644 (file)
@@ -139,12 +139,12 @@ public final class SchemaTracker {
         return (LeafSchemaNode) schema;
     }
 
-    public SchemaNode startLeafSet(final NodeIdentifier name) {
+    public LeafListSchemaNode startLeafSet(final NodeIdentifier name) {
         final SchemaNode schema = getSchema(name);
 
         Preconditions.checkArgument(schema instanceof LeafListSchemaNode, "Node %s is not a leaf-list", schema.getPath());
         schemaStack.push(schema);
-        return schema;
+        return (LeafListSchemaNode)schema;
     }
 
     public LeafListSchemaNode leafSetEntryNode() {
@@ -154,22 +154,22 @@ public final class SchemaTracker {
         return (LeafListSchemaNode) parent;
     }
 
-    public SchemaNode startChoiceNode(final NodeIdentifier name) {
+    public ChoiceNode startChoiceNode(final NodeIdentifier name) {
         LOG.debug("Enter choice {}", name);
         final SchemaNode schema = getSchema(name);
 
         Preconditions.checkArgument(schema instanceof ChoiceNode, "Node %s is not a choice", schema.getPath());
         schemaStack.push(schema);
-        return schema;
+        return (ChoiceNode)schema;
     }
 
-    public SchemaNode startContainerNode(final NodeIdentifier name) {
+    public ContainerSchemaNode startContainerNode(final NodeIdentifier name) {
         LOG.debug("Enter container {}", name);
         final SchemaNode schema = getSchema(name);
 
         Preconditions.checkArgument(schema instanceof ContainerSchemaNode, "Node %s is not a container", schema.getPath());
         schemaStack.push(schema);
-        return schema;
+        return (ContainerSchemaNode)schema;
     }
 
     public AugmentationSchema startAugmentationNode(final AugmentationIdentifier identifier) {