2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\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
8 package org.opendaylight.controller.yang.data.api;
\r
10 import java.util.List;
\r
12 import org.opendaylight.controller.yang.common.QName;
\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
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
27 * <li><b>anyxml</b></li>
\r
32 public interface CompositeNode extends Node<List<Node<?>>>, NodeModification {
\r
34 List<Node<?>> getChildren();
\r
36 List<CompositeNode> getCompositesByName(QName children);
\r
38 List<CompositeNode> getCompositesByName(String children);
\r
40 List<SimpleNode<?>> getSimpleNodesByName(QName children);
\r
42 List<SimpleNode<?>> getSimpleNodesByName(String children);
\r
44 CompositeNode getFirstCompositeByName(QName container);
\r
46 SimpleNode<?> getFirstSimpleByName(QName leaf);
\r
49 * @return cast self to mutable, if possible
\r
51 MutableCompositeNode asMutable();
\r