Merge "Fixed bug in uses statement resolving."
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / api / UsesNodeBuilder.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.parser.builder.api;
9
10 import java.util.List;
11 import java.util.Set;
12
13 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
14 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
15 import org.opendaylight.yangtools.yang.model.api.UsesNode;
16 import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
17 import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
18
19 /**
20  * Interface for builders of 'uses' statement.
21  */
22 public interface UsesNodeBuilder extends GroupingMember, Builder {
23
24     DataNodeContainerBuilder getParent();
25
26     String getGroupingName();
27
28     SchemaPath getGroupingPath();
29
30     void setGroupingPath(SchemaPath groupingPath);
31
32     GroupingDefinition getGroupingDefinition();
33
34     void setGroupingDefinition(GroupingDefinition groupingDefinition);
35
36     GroupingBuilder getGroupingBuilder();
37
38     void setGrouping(GroupingBuilder grouping);
39
40     Set<AugmentationSchemaBuilder> getAugmentations();
41
42     void addAugment(AugmentationSchemaBuilder builder);
43
44     boolean isAugmenting();
45
46     void setAugmenting(boolean augmenting);
47
48     List<RefineHolder> getRefines();
49
50     List<SchemaNodeBuilder> getRefineNodes();
51
52     void addRefine(RefineHolder refine);
53
54     void addRefineNode(DataSchemaNodeBuilder refineNode);
55
56     UsesNode build();
57
58     Set<DataSchemaNodeBuilder> getTargetChildren();
59
60     void setTargetChildren(Set<DataSchemaNodeBuilder> targetChildren);
61
62     Set<GroupingBuilder> getTargetGroupings();
63
64     void setTargetGroupings(Set<GroupingBuilder> targetGroupings);
65
66     Set<TypeDefinitionBuilder> getTargetTypedefs();
67
68     void setTargetTypedefs(Set<TypeDefinitionBuilder> targetTypedefs);
69
70     List<UnknownSchemaNodeBuilder> getTargetUnknownNodes();
71
72     void setTargetUnknownNodes(List<UnknownSchemaNodeBuilder> targetUnknownNodes);
73
74     boolean isDataCollected();
75
76     void setDataCollected(boolean dataCollected);
77
78     boolean isParentUpdated();
79
80     void setParentUpdated(boolean parentUpdated);
81
82 }