Propagate @Nonnull and @Nullable annotations
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / SchemaTracker.java
index 79463d031951bd648ee8d28494e2b74c91bd7df6..18dbab2b3e67892381e85dad6237f4a5b1f11286 100644 (file)
@@ -160,6 +160,7 @@ public final class SchemaTracker {
         return (LeafListSchemaNode)schema;
     }
 
+    @Deprecated
     public LeafListSchemaNode leafSetEntryNode() {
         final Object parent = getParent();
 
@@ -167,6 +168,18 @@ public final class SchemaTracker {
         return (LeafListSchemaNode) parent;
     }
 
+    public LeafListSchemaNode leafSetEntryNode(final QName qname) {
+        final Object parent = getParent();
+        if (parent instanceof LeafListSchemaNode) {
+            return (LeafListSchemaNode) parent;
+        }
+
+        final SchemaNode child = SchemaUtils.findChildSchemaByQName((SchemaNode) parent, qname);
+        Preconditions.checkArgument(child instanceof LeafListSchemaNode,
+            "Node %s is neither a leaf-list nor currently in a leaf-list", child.getPath());
+        return (LeafListSchemaNode) child;
+    }
+
     public ChoiceSchemaNode startChoiceNode(final NodeIdentifier name) {
         LOG.debug("Enter choice {}", name);
         final SchemaNode schema = getSchema(name);