Merge "Make sure maven artifacts are provided"
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / AugmentationNode.java
index 1653b5705e0f0fa14638e1716b410269c6fdfd45..2086542bf8980db133f14798773b20a2dcd46263 100644 (file)
@@ -7,15 +7,20 @@
  */
 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 java.util.Collection;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+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;
 
-import com.google.common.base.Optional;
 
 /**
  *
- * Node representing Augmentation.
+ * Data instance of <code>augment</code> assiociated with parent node.
+ *
+ * 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.
  *
@@ -23,14 +28,23 @@ import com.google.common.base.Optional;
 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);
+    DataContainerChild<YangInstanceIdentifier.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();
+    public AugmentationIdentifier getIdentifier();
 }