A race condition occurs between ARPHandler and HostTracker if the ARP
[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      * Returns set of all newly defined types within this DataNodeContainer.\r
21      *\r
22      * @return typedef statements in lexicographical order\r
23      */\r
24     Set<TypeDefinition<?>> getTypeDefinitions();\r
25 \r
26     /**\r
27      * Returns set of all child nodes defined within this DataNodeContainer.\r
28      *\r
29      * @return child nodes in lexicographical order\r
30      */\r
31     Set<DataSchemaNode> getChildNodes();\r
32 \r
33     /**\r
34      * Returns set of all groupings defined within this DataNodeContainer.\r
35      *\r
36      * @return grouping statements in lexicographical order\r
37      */\r
38     Set<GroupingDefinition> getGroupings();\r
39 \r
40     /**\r
41      * @param name\r
42      *            QName of seeked child\r
43      * @return child node of this DataNodeContainer if child with given name is\r
44      *         present, null otherwise\r
45      */\r
46     DataSchemaNode getDataChildByName(QName name);\r
47 \r
48     /**\r
49      * @param name\r
50      *            name of seeked child as String\r
51      * @return child node of this DataNodeContainer if child with given name is\r
52      *         present, null otherwise\r
53      */\r
54     DataSchemaNode getDataChildByName(String name);\r
55 \r
56     /**\r
57      * @return Set of all uses nodes defined within this DataNodeContainer\r
58      */\r
59     Set<UsesNode> getUses();\r
60 \r
61 }\r