/*
* Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.yangtools.yang.data.api;
import java.util.List;
import java.util.Map;
import org.opendaylight.yangtools.yang.common.QName;
/**
* Composite node represents a branch in the data tree, which could contain
* nested composite nodes or leaf nodes. In the terms of the XML the simple node
* is element which does not text data directly (CDATA or PCDATA), only other
* nodes. The composite node is the manifestation of the following data schema
* constructs in the YANG:
*
*
* - container - the composite node represents the YANG container and
* could contain all children schema nodes of that container
* - item in the list - the composite node represents one item
* in the YANG list and could contain all children schema nodes of that list
* item.
* - anyxml
*
*
*
*/
public interface CompositeNode extends //
Node>>, //
NodeModification, //
Map>> {
/**
* Returns a list of children as seens in resulting XML serialization
* defined by YANG specification.
*
* @return
*
* @deprecated Use {@link #getValue()} instead.
*/
@Deprecated
List> getChildren();
List getCompositesByName(QName children);
List getCompositesByName(String children);
List> getSimpleNodesByName(QName children);
List> getSimpleNodesByName(String children);
CompositeNode getFirstCompositeByName(QName container);
SimpleNode> getFirstSimpleByName(QName leaf);
/**
* @return cast self to mutable, if possible
*/
@Deprecated
MutableCompositeNode asMutable();
}