e8c814e20804eadea4ec916ec834a4b3310c7e82
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-api / src / main / java / org / opendaylight / controller / 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.controller.yang.model.api;\r
9 \r
10 import java.util.Set;\r
11 \r
12 import org.opendaylight.controller.yang.common.QName;\r
13 \r
14 /**\r
15  * Node which can contains other nodes.\r
16  */\r
17 public interface DataNodeContainer {\r
18 \r
19     /**\r
20      * @return Set of all newly defined types within this DataNodeContainer\r
21      */\r
22     Set<TypeDefinition<?>> getTypeDefinitions();\r
23 \r
24     /**\r
25      * Set of all child nodes defined within this DataNodeContainer\r
26      */\r
27     Set<DataSchemaNode> getChildNodes();\r
28 \r
29     /**\r
30      * Set of all groupings defined within this DataNodeContainer\r
31      */\r
32     Set<GroupingDefinition> getGroupings();\r
33 \r
34     /**\r
35      * @param name\r
36      *            QName of seeked child\r
37      * @return child node of this DataNodeContainer if child with given name is\r
38      *         present, null otherwise\r
39      */\r
40     DataSchemaNode getDataChildByName(QName name);\r
41 \r
42     /**\r
43      * @param name\r
44      *            name of seeked child as String\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(String name);\r
49 \r
50     /**\r
51      * @return Set of all uses nodes defined within this DataNodeContainer\r
52      */\r
53     Set<UsesNode> getUses();\r
54 \r
55 }\r