2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.parser.builder.api;
10 import java.util.Collection;
13 import org.opendaylight.yangtools.yang.common.QName;
14 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
15 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
16 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
19 * Interface for all yang data-node containers [augment, case, container,
20 * grouping, list, module, notification].
22 public interface DataNodeContainerBuilder extends Builder {
25 * Get qname of this node.
27 * @return QName of this node
32 * Get schema path of this node.
34 * @return SchemaPath of this node
39 * Get already built child nodes.
41 * @return collection of child nodes
43 Collection<DataSchemaNode> getChildNodes();
46 * Get builders of child nodes.
48 * @return collection child nodes builders
50 Set<DataSchemaNodeBuilder> getChildNodeBuilders();
53 * Get child node by name.
56 * name of child to seek
57 * @return child node with given name if present, null otherwise
59 DataSchemaNodeBuilder getDataChildByName(String name);
62 * Add builder of child node to this node.
66 void addChildNode(DataSchemaNodeBuilder childNode);
68 void addChildNode(DataSchemaNode childNode);
71 * Get already built groupings defined in this node.
73 * @return collection of GroupingDefinition objects
75 Set<GroupingDefinition> getGroupings();
78 * Get builders of groupings defined in this node.
80 * @return collection of grouping builders
82 Set<GroupingBuilder> getGroupingBuilders();
85 * Add builder of grouping statement to this node.
87 * @param groupingBuilder
89 void addGrouping(GroupingBuilder groupingBuilder);
92 * Get builders of uses defined in this node.
94 * @return collection of uses builders
96 Set<UsesNodeBuilder> getUsesNodes();
99 * Add builder of uses statement to this node.
103 void addUsesNode(UsesNodeBuilder usesBuilder);
106 * Get builders of typedef statement defined in this node.
108 * @return typedefBuilder
110 Set<TypeDefinitionBuilder> getTypeDefinitionBuilders();
113 * Add typedef builder to this node.
115 * @param typedefBuilder
117 void addTypedef(TypeDefinitionBuilder typedefBuilder);