Refactored parsing of YANG uses statement.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / parser / builder / impl / IdentityrefTypeBuilder.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.controller.yang.parser.builder.impl;
9
10 import java.util.Collections;
11 import java.util.List;
12
13 import org.opendaylight.controller.yang.common.QName;
14 import org.opendaylight.controller.yang.model.api.SchemaPath;
15 import org.opendaylight.controller.yang.model.api.Status;
16 import org.opendaylight.controller.yang.model.api.TypeDefinition;
17 import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
18 import org.opendaylight.controller.yang.model.api.type.LengthConstraint;
19 import org.opendaylight.controller.yang.model.api.type.PatternConstraint;
20 import org.opendaylight.controller.yang.model.api.type.RangeConstraint;
21 import org.opendaylight.controller.yang.model.util.IdentityrefType;
22 import org.opendaylight.controller.yang.parser.builder.api.AbstractTypeAwareBuilder;
23 import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder;
24 import org.opendaylight.controller.yang.parser.util.YangParseException;
25
26 /**
27  * Builder for YANG union type. User can add type to this union as
28  * TypeDefinition object (resolved type) or in form of TypeDefinitionBuilder.
29  * When build is called, types in builder form will be built and add to resolved
30  * types.
31  */
32 public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder {
33     private static final String NAME = "identityref";
34
35     private final int line;
36     private final String baseString;
37     private final SchemaPath schemaPath;
38     private QName baseQName;
39
40     IdentityrefTypeBuilder(final String baseString, final SchemaPath schemaPath, final int line) {
41         this.line = line;
42         this.baseString = baseString;
43         this.schemaPath = schemaPath;
44     }
45
46     @Override
47     public IdentityrefType build() {
48         return new IdentityrefType(baseQName, schemaPath);
49     }
50
51     public String getBaseString() {
52         return baseString;
53     }
54
55     public void setBaseQName(QName baseQName) {
56         this.baseQName = baseQName;
57     }
58
59     @Override
60     public int getLine() {
61         return line;
62     }
63
64     @Override
65     public TypeDefinition<?> getType() {
66         return null;
67     }
68
69     @Override
70     public TypeDefinitionBuilder getTypedef() {
71         return null;
72     }
73
74     @Override
75     public void setType(final TypeDefinition<?> type) {
76         throw new YangParseException(line, "Can not set type to " + NAME);
77     }
78
79     @Override
80     public void setTypedef(final TypeDefinitionBuilder tdb) {
81         throw new YangParseException(line, "Can not set type to " + NAME);
82     }
83
84     @Override
85     public void setPath(final SchemaPath schemaPath) {
86         throw new YangParseException(line, "Can not set path to " + NAME);
87     }
88
89     @Override
90     public void setDescription(final String description) {
91         throw new YangParseException(line, "Can not set description to " + NAME);
92     }
93
94     @Override
95     public void setReference(final String reference) {
96         throw new YangParseException(line, "Can not set reference to " + NAME);
97     }
98
99     @Override
100     public void setStatus(final Status status) {
101         throw new YangParseException(line, "Can not set status to " + NAME);
102     }
103
104     @Override
105     public boolean isAddedByUses() {
106         return false;
107     }
108
109     @Override
110     public void setAddedByUses(final boolean addedByUses) {
111         throw new YangParseException(line, "Identityref type can not be added by uses.");
112     }
113
114     @Override
115     public List<UnknownSchemaNode> getUnknownNodes() {
116         return Collections.emptyList();
117     }
118
119     @Override
120     public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
121         throw new YangParseException(line, "Can not add unknown node to " + NAME);
122     }
123
124     @Override
125     public QName getQName() {
126         return null;
127     }
128
129     @Override
130     public SchemaPath getPath() {
131         return null;
132     }
133
134     @Override
135     public String getDescription() {
136         return null;
137     }
138
139     @Override
140     public String getReference() {
141         return null;
142     }
143
144     @Override
145     public Status getStatus() {
146         return null;
147     }
148
149     @Override
150     public List<RangeConstraint> getRanges() {
151         return Collections.emptyList();
152     }
153
154     @Override
155     public void setRanges(List<RangeConstraint> ranges) {
156         throw new YangParseException(line, "Can not set ranges to " + NAME);
157     }
158
159     @Override
160     public List<LengthConstraint> getLengths() {
161         return Collections.emptyList();
162     }
163
164     @Override
165     public void setLengths(List<LengthConstraint> lengths) {
166         throw new YangParseException(line, "Can not set lengths to " + NAME);
167     }
168
169     @Override
170     public List<PatternConstraint> getPatterns() {
171         return Collections.emptyList();
172     }
173
174     @Override
175     public void setPatterns(List<PatternConstraint> patterns) {
176         throw new YangParseException(line, "Can not set patterns to " + NAME);
177     }
178
179     @Override
180     public Integer getFractionDigits() {
181         return null;
182     }
183
184     @Override
185     public void setFractionDigits(Integer fractionDigits) {
186         throw new YangParseException(line, "Can not set fraction digits to " + NAME);
187     }
188
189     @Override
190     public List<UnknownSchemaNodeBuilder> getUnknownNodeBuilders() {
191         return Collections.emptyList();
192     }
193
194     @Override
195     public Object getDefaultValue() {
196         return null;
197     }
198
199     @Override
200     public void setDefaultValue(Object defaultValue) {
201         throw new YangParseException(line, "Can not set default value to " + NAME);
202     }
203
204     @Override
205     public String getUnits() {
206         return null;
207     }
208
209     @Override
210     public void setUnits(String units) {
211         throw new YangParseException(line, "Can not set units to " + NAME);
212     }
213
214     @Override
215     public String toString() {
216         final StringBuilder result = new StringBuilder(IdentityrefTypeBuilder.class.getSimpleName() + "[");
217         result.append(", base=" + baseQName);
218         result.append("]");
219         return result.toString();
220     }
221
222 }