*/
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();
}