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