Updated yangtools version to 0.5.6-SNAPSHOT.
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / DataNodeContainer.java
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/DataNodeContainer.java
new file mode 100644 (file)
index 0000000..20b9ea4
--- /dev/null
@@ -0,0 +1,61 @@
+/*\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.Set;\r
+\r
+import org.opendaylight.yangtools.yang.common.QName;\r
+\r
+/**\r
+ * Node which can contains other nodes.\r
+ */\r
+public interface DataNodeContainer {\r
+\r
+    /**\r
+     * Returns set of all newly defined types within this DataNodeContainer.\r
+     *\r
+     * @return typedef statements in lexicographical order\r
+     */\r
+    Set<TypeDefinition<?>> getTypeDefinitions();\r
+\r
+    /**\r
+     * Returns set of all child nodes defined within this DataNodeContainer.\r
+     *\r
+     * @return child nodes in lexicographical order\r
+     */\r
+    Set<DataSchemaNode> getChildNodes();\r
+\r
+    /**\r
+     * Returns set of all groupings defined within this DataNodeContainer.\r
+     *\r
+     * @return grouping statements in lexicographical order\r
+     */\r
+    Set<GroupingDefinition> getGroupings();\r
+\r
+    /**\r
+     * @param name\r
+     *            QName of seeked child\r
+     * @return child node of this DataNodeContainer if child with given name is\r
+     *         present, null otherwise\r
+     */\r
+    DataSchemaNode getDataChildByName(QName name);\r
+\r
+    /**\r
+     * @param name\r
+     *            name of seeked child as String\r
+     * @return child node of this DataNodeContainer if child with given name is\r
+     *         present, null otherwise\r
+     */\r
+    DataSchemaNode getDataChildByName(String name);\r
+\r
+    /**\r
+     * @return Set of all uses nodes defined within this DataNodeContainer\r
+     */\r
+    Set<UsesNode> getUses();\r
+\r
+}\r