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