Refactored parsing of uses and augment statements.
[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.SchemaPath;
14 import org.opendaylight.yangtools.yang.model.api.UsesNode;
15 import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
16 import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
17
18 /**
19  * Interface for builders of 'uses' statement.
20  */
21 public interface UsesNodeBuilder extends GroupingMember, Builder {
22
23     DataNodeContainerBuilder getParent();
24
25     String getGroupingName();
26
27     SchemaPath getGroupingPath();
28
29     void setGroupingPath(SchemaPath groupingPath);
30
31     Set<AugmentationSchemaBuilder> getAugmentations();
32
33     void addAugment(AugmentationSchemaBuilder builder);
34
35     boolean isAugmenting();
36
37     void setAugmenting(boolean augmenting);
38
39     List<RefineHolder> getRefines();
40
41     List<SchemaNodeBuilder> getRefineNodes();
42
43     void addRefine(RefineHolder refine);
44
45     void addRefineNode(DataSchemaNodeBuilder refineNode);
46
47     UsesNode build();
48
49     Set<DataSchemaNodeBuilder> getFinalChildren();
50
51     Set<DataSchemaNodeBuilder> getTargetChildren();
52
53     void setTargetChildren(Set<DataSchemaNodeBuilder> targetChildren);
54
55     Set<GroupingBuilder> getFinalGroupings();
56
57     Set<GroupingBuilder> getTargetGroupings();
58
59     void setTargetGroupings(Set<GroupingBuilder> targetGroupings);
60
61     Set<TypeDefinitionBuilder> getFinalTypedefs();
62
63     Set<TypeDefinitionBuilder> getTargetTypedefs();
64
65     void setTargetTypedefs(Set<TypeDefinitionBuilder> targetTypedefs);
66
67     List<UnknownSchemaNodeBuilder> getFinalUnknownNodes();
68
69     List<UnknownSchemaNodeBuilder> getTargetUnknownNodes();
70
71     void setTargetUnknownNodes(List<UnknownSchemaNodeBuilder> targetUnknownNodes);
72
73     List<UsesNodeBuilder> getTargetGroupingUses();
74
75     boolean isLoadDone();
76
77     void setLoadDone(boolean loadDone);
78
79 }