Fix enum members' name
[yangtools.git] / yang / yang-model-export / src / main / java / org / opendaylight / yangtools / yang / model / export / SchemaToStatementWriterAdaptor.java
1 /*
2  * Copyright (c) 2014 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.model.export;
9
10 import com.google.common.annotations.Beta;
11 import com.google.common.base.Preconditions;
12 import com.google.common.primitives.UnsignedInteger;
13 import java.net.URI;
14 import java.util.Date;
15 import java.util.List;
16 import javax.annotation.concurrent.NotThreadSafe;
17 import org.opendaylight.yangtools.yang.common.QName;
18 import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
19 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
20 import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping;
21 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
22 import org.opendaylight.yangtools.yang.model.api.Status;
23 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
24
25 @Beta
26 @NotThreadSafe
27 final class SchemaToStatementWriterAdaptor implements Rfc6020ModuleWriter {
28
29     private final StatementTextWriter writer;
30
31     private SchemaToStatementWriterAdaptor(final StatementTextWriter writer) {
32         this.writer = Preconditions.checkNotNull(writer);
33     }
34
35     public static final Rfc6020ModuleWriter from(final StatementTextWriter writer) {
36         return new SchemaToStatementWriterAdaptor(writer);
37     }
38
39     @Override
40     public void endNode() {
41         writer.endStatement();
42     }
43
44     @Override
45     public void startModuleNode(final String identifier) {
46         writer.startStatement(Rfc6020Mapping.MODULE);
47         writer.writeArgument(identifier);
48     }
49
50     @Override
51     public void startOrganizationNode(final String input) {
52         writer.startStatement(Rfc6020Mapping.ORGANIZATION);
53         writer.writeArgument(input);
54     }
55
56     @Override
57     public void startContactNode(final String input) {
58         writer.startStatement(Rfc6020Mapping.CONTACT);
59         writer.writeArgument(input);
60     }
61
62     @Override
63     public void startDescriptionNode(final String input) {
64         writer.startStatement(Rfc6020Mapping.DESCRIPTION);
65         writer.writeArgument(input);
66     }
67
68     @Override
69     public void startReferenceNode(final String input) {
70         writer.startStatement(Rfc6020Mapping.REFERENCE);
71         writer.writeArgument(input);
72     }
73
74     @Override
75     public void startUnitsNode(final String input) {
76         writer.startStatement(Rfc6020Mapping.UNITS);
77         writer.writeArgument(input);
78     }
79
80     @Override
81     public void startYangVersionNode(final String input) {
82         writer.startStatement(Rfc6020Mapping.YANG_VERSION);
83         writer.writeArgument(input);
84     }
85
86     @Override
87     public void startNamespaceNode(final URI uri) {
88         writer.startStatement(Rfc6020Mapping.NAMESPACE);
89         writer.writeArgument(uri.toString());
90     }
91
92     @Override
93     public void startKeyNode(final List<QName> keyList) {
94         writer.startStatement(Rfc6020Mapping.KEY);
95         final StringBuilder keyStr = new StringBuilder();
96         for (final QName item : keyList) {
97             keyStr.append(item.getLocalName());
98         }
99         writer.writeArgument(keyStr.toString());
100     }
101
102     @Override
103     public void startPrefixNode(final String input) {
104         writer.startStatement(Rfc6020Mapping.PREFIX);
105         writer.writeArgument(input);
106     }
107
108     @Override
109     public void startFeatureNode(final QName qName) {
110         writer.startStatement(Rfc6020Mapping.FEATURE);
111         writer.writeArgument(qName);
112     }
113
114     @Override
115     public void startExtensionNode(final QName qName) {
116         writer.startStatement(Rfc6020Mapping.EXTENSION);
117         writer.writeArgument(qName);
118     }
119
120     @Override
121     public void startArgumentNode(final String input) {
122         writer.startStatement(Rfc6020Mapping.ARGUMENT);
123         writer.writeArgument(input);
124     }
125
126     @Override
127     public void startStatusNode(final Status status) {
128         writer.startStatement(Rfc6020Mapping.STATUS);
129         writer.writeArgument(status.toString().toLowerCase());
130     }
131
132     @Override
133     public void startTypeNode(final QName qName) {
134         writer.startStatement(Rfc6020Mapping.TYPE);
135         writer.writeArgument(qName);
136     }
137
138     @Override
139     public void startLeafNode(final QName qName) {
140         writer.startStatement(Rfc6020Mapping.LEAF);
141         writer.writeArgument(qName);
142     }
143
144     @Override
145     public void startContainerNode(final QName qName) {
146         writer.startStatement(Rfc6020Mapping.CONTAINER);
147         writer.writeArgument(qName);
148     }
149
150     @Override
151     public void startGroupingNode(final QName qName) {
152         writer.startStatement(Rfc6020Mapping.GROUPING);
153         writer.writeArgument(qName);
154     }
155
156     @Override
157     public void startRpcNode(final QName qName) {
158         writer.startStatement(Rfc6020Mapping.RPC);
159         writer.writeArgument(qName);
160     }
161
162     @Override
163     public void startInputNode() {
164         writer.startStatement(Rfc6020Mapping.INPUT);
165     }
166
167     @Override
168     public void startOutputNode() {
169         writer.startStatement(Rfc6020Mapping.OUTPUT);
170     }
171
172     @Override
173     public void startLeafListNode(final QName qName) {
174         writer.startStatement(Rfc6020Mapping.LEAF_LIST);
175         writer.writeArgument(qName);
176     }
177
178     @Override
179     public void startListNode(final QName qName) {
180         writer.startStatement(Rfc6020Mapping.LIST);
181         writer.writeArgument(qName);
182     }
183
184     @Override
185     public void startChoiceNode(final QName qName) {
186         writer.startStatement(Rfc6020Mapping.CHOICE);
187         writer.writeArgument(qName);
188     }
189
190     @Override
191     public void startCaseNode(final QName qName) {
192         writer.startStatement(Rfc6020Mapping.CASE);
193         writer.writeArgument(qName);
194     }
195
196     @Override
197     public void startNotificationNode(final QName qName) {
198         writer.startStatement(Rfc6020Mapping.NOTIFICATION);
199         writer.writeArgument(qName);
200     }
201
202     @Override
203     public void startIdentityNode(final QName qName) {
204         writer.startStatement(Rfc6020Mapping.IDENTITY);
205         writer.writeArgument(qName);
206     }
207
208     @Override
209     public void startBaseNode(final QName qName) {
210         writer.startStatement(Rfc6020Mapping.BASE);
211         writer.writeArgument(qName);
212     }
213
214     @Override
215     public void startTypedefNode(final QName qName) {
216         writer.startStatement(Rfc6020Mapping.TYPEDEF);
217         writer.writeArgument(qName);
218     }
219
220     @Override
221     public void startRevisionNode(final Date date) {
222         writer.startStatement(Rfc6020Mapping.REVISION);
223         writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date));
224     }
225
226     @Override
227     public void startDefaultNode(final String string) {
228         writer.startStatement(Rfc6020Mapping.DEFAULT);
229         writer.writeArgument(string);
230     }
231
232     @Override
233     public void startMustNode(final RevisionAwareXPath xpath) {
234         writer.startStatement(Rfc6020Mapping.MUST);
235         writer.writeArgument(xpath);
236     }
237
238     @Override
239     public void startErrorMessageNode(final String input) {
240         writer.startStatement(Rfc6020Mapping.ERROR_MESSAGE);
241         writer.writeArgument(input);
242     }
243
244     @Override
245     public void startErrorAppTagNode(final String input) {
246         writer.startStatement(Rfc6020Mapping.ERROR_APP_TAG);
247         writer.writeArgument(input);
248     }
249
250     @Override
251     public void startPatternNode(final String regularExpression) {
252         writer.startStatement(Rfc6020Mapping.PATTERN);
253         writer.writeArgument(regularExpression);
254     }
255
256     @Override
257     public void startValueNode(final Integer integer) {
258         writer.startStatement(Rfc6020Mapping.VALUE);
259         writer.writeArgument(integer.toString());
260     }
261
262     @Override
263     public void startEnumNode(final String name) {
264         writer.startStatement(Rfc6020Mapping.ENUM);
265         writer.writeArgument(name);
266     }
267
268     @Override
269     public void startRequireInstanceNode(final boolean require) {
270         writer.startStatement(Rfc6020Mapping.REQUIRE_INSTANCE);
271         writer.writeArgument(Boolean.toString(require));
272     }
273
274     @Override
275     public void startPathNode(final RevisionAwareXPath revisionAwareXPath) {
276         writer.startStatement(Rfc6020Mapping.PATH);
277         writer.writeArgument(revisionAwareXPath);
278     }
279
280     @Override
281     public void startBitNode(final String name) {
282         writer.startStatement(Rfc6020Mapping.BIT);
283         writer.writeArgument(name);
284     }
285
286     @Override
287     public void startPositionNode(final UnsignedInteger position) {
288         writer.startStatement(Rfc6020Mapping.POSITION);
289         writer.writeArgument(position.toString());
290     }
291
292     @Override
293     public void startImportNode(final String moduleName) {
294         writer.startStatement(Rfc6020Mapping.IMPORT);
295         writer.writeArgument(moduleName);
296     }
297
298     @Override
299     public void startRevisionDateNode(final Date date) {
300         writer.startStatement(Rfc6020Mapping.REVISION_DATE);
301         writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date));
302     }
303
304     @Override
305     public void startUsesNode(final QName groupingName) {
306         writer.startStatement(Rfc6020Mapping.USES);
307         writer.writeArgument(groupingName);
308     }
309
310     @Override
311     public void startAugmentNode(final SchemaPath targetPath) {
312         writer.startStatement(Rfc6020Mapping.AUGMENT);
313         writer.writeArgument(targetPath);
314     }
315
316     @Override
317     public void startConfigNode(final boolean config) {
318         writer.startStatement(Rfc6020Mapping.CONFIG);
319         writer.writeArgument(Boolean.toString(config));
320     }
321
322     @Override
323     public void startLengthNode(final String lengthString) {
324         writer.startStatement(Rfc6020Mapping.LENGTH);
325         writer.writeArgument(lengthString);
326     }
327
328     @Override
329     public void startMaxElementsNode(final Integer max) {
330         writer.startStatement(Rfc6020Mapping.MAX_ELEMENTS);
331         writer.writeArgument(max.toString());
332     }
333
334     @Override
335     public void startMinElementsNode(final Integer min) {
336         writer.startStatement(Rfc6020Mapping.MIN_ELEMENTS);
337         writer.writeArgument(min.toString());
338     }
339
340     @Override
341     public void startPresenceNode(final boolean presence) {
342         writer.startStatement(Rfc6020Mapping.PRESENCE);
343         writer.writeArgument(Boolean.toString(presence));
344     }
345
346     @Override
347     public void startOrderedByNode(final String ordering) {
348         writer.startStatement(Rfc6020Mapping.ORDERED_BY);
349         writer.writeArgument(ordering);
350     }
351
352     @Override
353     public void startRangeNode(final String rangeString) {
354         writer.startStatement(Rfc6020Mapping.RANGE);
355         writer.writeArgument(rangeString);
356     }
357
358     @Override
359     public void startFractionDigitsNode(final Integer fractionDigits) {
360         writer.startStatement(Rfc6020Mapping.FRACTION_DIGITS);
361         writer.writeArgument(fractionDigits.toString());
362     }
363
364     @Override
365     public void startRefineNode(final SchemaPath path) {
366         writer.startStatement(Rfc6020Mapping.REFINE);
367         writer.writeArgument(path);
368     }
369
370     @Override
371     public void startMandatoryNode(final boolean mandatory) {
372         writer.startStatement(Rfc6020Mapping.MANDATORY);
373         writer.writeArgument(Boolean.toString(mandatory));
374     }
375
376     @Override
377     public void startAnyxmlNode(final QName qName) {
378         writer.startStatement(Rfc6020Mapping.ANYXML);
379         writer.writeArgument(qName);
380     }
381
382     @Override
383     public void startUnknownNode(final StatementDefinition def) {
384         writer.startStatement(def);
385     }
386
387     @Override
388     public void startUnknownNode(final StatementDefinition def, final String nodeParameter) {
389         writer.startStatement(def);
390         writer.writeArgument(nodeParameter);
391     }
392
393     @Override
394     public void startYinElementNode(final boolean yinElement) {
395         writer.startStatement(Rfc6020Mapping.YIN_ELEMENT);
396         writer.writeArgument(Boolean.toString(yinElement));
397     }
398
399     @Override
400     public void startWhenNode(final RevisionAwareXPath revisionAwareXPath) {
401         writer.startStatement(Rfc6020Mapping.WHEN);
402         writer.writeArgument(revisionAwareXPath);
403     }
404 }