Fix minor bug in FRM proactive flow code path
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-data-api / src / main / java / org / opendaylight / controller / yang / data / api / CompositeNode.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.data.api;\r
9 \r
10 import java.util.List;\r
11 \r
12 import org.opendaylight.controller.yang.common.QName;\r
13 \r
14 /**\r
15  * Composite node represents a branch in the data tree, which could contain\r
16  * nested composite nodes or leaf nodes. In the terms of the XML the simple node\r
17  * is element which does not text data directly (CDATA or PCDATA), only other\r
18  * nodes. The composite node is the manifestation of the following data schema\r
19  * constructs in the YANG:\r
20  * \r
21  * <ul>\r
22  * <li><b>container</b> - the composite node represents the YANG container and\r
23  * could contain all children schema nodes of that container</li>\r
24  * <li><b>item</b> in the <b>list</b> - the composite node represents one item\r
25  * in the YANG list and could contain all children schema nodes of that list\r
26  * item.</li>\r
27  * <li><b>anyxml</b></li>\r
28  * </ul>\r
29  * \r
30  * \r
31  */\r
32 public interface CompositeNode extends Node<List<Node<?>>>, NodeModification {\r
33 \r
34     List<Node<?>> getChildren();\r
35 \r
36     List<CompositeNode> getCompositesByName(QName children);\r
37 \r
38     List<CompositeNode> getCompositesByName(String children);\r
39 \r
40     List<SimpleNode<?>> getSimpleNodesByName(QName children);\r
41 \r
42     List<SimpleNode<?>> getSimpleNodesByName(String children);\r
43 \r
44     CompositeNode getFirstCompositeByName(QName container);\r
45 \r
46     SimpleNode<?> getFirstSimpleByName(QName leaf);\r
47 \r
48     /**\r
49      * @return cast self to mutable, if possible \r
50      */\r
51     MutableCompositeNode asMutable();\r
52 }\r