Updated yangtools version to 0.5.6-SNAPSHOT.
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / AugmentationSchema.java
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AugmentationSchema.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AugmentationSchema.java
new file mode 100644 (file)
index 0000000..22b952c
--- /dev/null
@@ -0,0 +1,55 @@
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.yangtools.yang.model.api;\r
+\r
+import java.util.List;\r
+\r
+/**\r
+ * AugmentationSchema represents augment definition. The "augment" statement\r
+ * allows a module or submodule to add to the schema tree defined in an external\r
+ * module, or the current module and its submodules, and to add to the nodes\r
+ * from a grouping in a "uses" statement.\r
+ */\r
+public interface AugmentationSchema extends DataNodeContainer {\r
+\r
+    /**\r
+     * @return when statement\r
+     */\r
+    RevisionAwareXPath getWhenCondition();\r
+\r
+    /**\r
+     * @return textual description of this augment.\r
+     */\r
+    String getDescription();\r
+\r
+    /**\r
+     * @return textual cross-reference to an external document that provides\r
+     *         additional information relevant to this node.\r
+     */\r
+    String getReference();\r
+\r
+    /**\r
+     * @return actual status of this node.\r
+     */\r
+    Status getStatus();\r
+\r
+    /**\r
+     * @return SchemaPath that identifies a node in the schema tree. This node\r
+     *         is called the augment's target node. The target node MUST be\r
+     *         either a container, list, choice, case, input, output, or\r
+     *         notification node. It is augmented with the nodes defined as\r
+     *         child nodes of this AugmentationSchema.\r
+     */\r
+    SchemaPath getTargetPath();\r
+\r
+    /**\r
+     * @return collection of all unknown nodes defined in this augmentation\r
+     */\r
+    public List<UnknownSchemaNode> getUnknownSchemaNodes();\r
+\r
+}\r