Add NormalizedNode.contract()
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / ChoiceNode.java
index d1dd33bd88c99252795d4b731b60cd5bca762951..17a893fa537e8e98c3072d16cef2cd89c5ac4553 100644 (file)
@@ -7,26 +7,30 @@
  */
 package org.opendaylight.yangtools.yang.data.api.schema;
 
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
-
-import com.google.common.base.Optional;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 
 /**
+ * Node representing data instance of <code>choice</code>.
  *
- * Node representing choice.
+ * <p>
+ * Choice node is instance of one of possible alternatives, from which only one is allowed to exist at one time in
+ * particular context of parent node.
  *
- * @author Tony Tkacik
+ * <p>
+ * YANG Model and schema for choice is described by instance of
+ * {@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode}.
  *
+ * <p>
+ * Valid alternatives of subtree are described by instances of
+ * {@link org.opendaylight.yangtools.yang.model.api.CaseSchemaNode}, which are retrieved via
+ * {@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode#getCases()}.
  */
-public interface ChoiceNode extends //
-        MixinNode, //
-        DataContainerNode<NodeIdentifier> {
-
+public interface ChoiceNode extends MixinNode, DataContainerNode, DataContainerChild {
     @Override
-    public NodeIdentifier getIdentifier();
+    default Class<ChoiceNode> contract() {
+        return ChoiceNode.class;
+    }
 
     @Override
-    public Optional<DataContainerChild<?, ?>> getChild(PathArgument child);
-
+    NodeIdentifier getIdentifier();
 }