Bug 5019: Add QName param to NormalizedNodeWriter#leafSetEntryNode
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / AugmentationNode.java
index 1653b5705e0f0fa14638e1716b410269c6fdfd45..0c24bd8bb0886056a22670046176df757e1ef463 100644 (file)
@@ -7,30 +7,39 @@
  */
 package org.opendaylight.yangtools.yang.data.api.schema;
 
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.AugmentationIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
-
-import com.google.common.base.Optional;
+import java.util.Collection;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 
 /**
+ * Data instance of <code>augment</code> associated with parent node.
  *
- * Node representing Augmentation.
+ * Augmentation is addition of subtree defined by other external YANG Model and
+ * is schema for subtree is described by instance of  {@link AugmentationSchema}
+ * associated with parent node of this node.
  *
  * Augmentation node MUST NOT be direct child of other augmentation node.
  *
  */
-public interface AugmentationNode extends //
-    MixinNode, //
-    DataContainerNode<AugmentationIdentifier>,
-    DataContainerChild<InstanceIdentifier.AugmentationIdentifier, Iterable<DataContainerChild<? extends PathArgument, ?>>> {
-
-    @Override
-    Iterable<DataContainerChild<? extends PathArgument, ?>> getValue();
-
-    @Override
-    Optional<DataContainerChild<? extends PathArgument, ?>> getChild(PathArgument child);
+public interface AugmentationNode extends MixinNode, DataContainerNode<AugmentationIdentifier>,
+    DataContainerChild<AugmentationIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> {
 
+    /**
+     * Gets identifier of augmentation node
+     *
+     * Returned identifier of augmentation node contains all possible
+     * direct child QNames.
+     *
+     * This is sufficient to identify instance of augmentation,
+     * since RFC6020 states that <code>augment</code> that augment
+     * statement must not add multiple nodes from same namespace
+     * / module
+     * to the target node.
+     *
+     * @return Identifier which uniquelly identifies augmentation in particular subtree.
+     *
+     */
     @Override
     AugmentationIdentifier getIdentifier();
 }