Added getParent() method to DataSchemaNode and DataNodeContainer. Fixed Bugs.
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / DataNodeContainer.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.yangtools.yang.model.api;\r
9 \r
10 import java.util.Set;\r
11 \r
12 import org.opendaylight.yangtools.yang.common.QName;\r
13 \r
14 /**\r
15  * Node which can contains other nodes.\r
16  */\r
17 public interface DataNodeContainer extends YangNode {\r
18 \r
19     YangNode getParent();\r
20 \r
21     /**\r
22      * Returns set of all newly defined types within this DataNodeContainer.\r
23      *\r
24      * @return typedef statements in lexicographical order\r
25      */\r
26     Set<TypeDefinition<?>> getTypeDefinitions();\r
27 \r
28     /**\r
29      * Returns set of all child nodes defined within this DataNodeContainer.\r
30      *\r
31      * @return child nodes in lexicographical order\r
32      */\r
33     Set<DataSchemaNode> getChildNodes();\r
34 \r
35     /**\r
36      * Returns set of all groupings defined within this DataNodeContainer.\r
37      *\r
38      * @return grouping statements in lexicographical order\r
39      */\r
40     Set<GroupingDefinition> getGroupings();\r
41 \r
42     /**\r
43      * @param name\r
44      *            QName of seeked child\r
45      * @return child node of this DataNodeContainer if child with given name is\r
46      *         present, null otherwise\r
47      */\r
48     DataSchemaNode getDataChildByName(QName name);\r
49 \r
50     /**\r
51      * @param name\r
52      *            name of seeked child as String\r
53      * @return child node of this DataNodeContainer if child with given name is\r
54      *         present, null otherwise\r
55      */\r
56     DataSchemaNode getDataChildByName(String name);\r
57 \r
58     /**\r
59      * @return Set of all uses nodes defined within this DataNodeContainer\r
60      */\r
61     Set<UsesNode> getUses();\r
62 \r
63 }\r