X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-export%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Fexport%2FSchemaToStatementWriterAdaptor.java;h=c4f8f5428206ba79c1c1528e3e01aa84ad10b02e;hb=12e45c716e36ef7a6a82c362566e35e2c860751a;hp=4712dbd745530b0df3c2c2378bdae0e8b17ed9d2;hpb=2f2338abee4e4dbfe0ad7d28362fd8aa511494aa;p=yangtools.git diff --git a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java index 4712dbd745..c4f8f54282 100644 --- a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java +++ b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java @@ -7,32 +7,39 @@ */ package org.opendaylight.yangtools.yang.model.export; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.Beta; -import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; import com.google.common.primitives.UnsignedInteger; import java.net.URI; -import java.util.Date; +import java.util.Collection; +import java.util.Iterator; import java.util.List; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; -import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; +import org.opendaylight.yangtools.yang.model.api.UniqueConstraint; +import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Relative; +import org.opendaylight.yangtools.yang.model.api.type.ModifierKind; +@Deprecated @Beta @NotThreadSafe -final class SchemaToStatementWriterAdaptor implements Rfc6020ModuleWriter { +final class SchemaToStatementWriterAdaptor implements YangModuleWriter { private final StatementTextWriter writer; private SchemaToStatementWriterAdaptor(final StatementTextWriter writer) { - this.writer = Preconditions.checkNotNull(writer); + this.writer = requireNonNull(writer); } - public static final Rfc6020ModuleWriter from(final StatementTextWriter writer) { + public static YangModuleWriter from(final StatementTextWriter writer) { return new SchemaToStatementWriterAdaptor(writer); } @@ -42,341 +49,614 @@ final class SchemaToStatementWriterAdaptor implements Rfc6020ModuleWriter { } @Override - public void startModuleNode(final String identifier) { - writer.startStatement(Rfc6020Mapping.MODULE); - writer.writeArgument(identifier); + public void startActionNode(final QName qname) { + writer.startStatement(YangStmtMapping.ACTION); + writer.writeArgument(qname); } @Override - public void startOrganizationNode(final String input) { - writer.startStatement(Rfc6020Mapping.ORGANIZATION); + public void startActionNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.ACTION); + writer.writeArgument(rawArgument); + } + + @Override + public void startAnydataNode(final QName qname) { + writer.startStatement(YangStmtMapping.ANYDATA); + writer.writeArgument(qname); + } + + @Override + public void startAnydataNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.ANYDATA); + writer.writeArgument(rawArgument); + } + + @Override + public void startAnyxmlNode(final QName qname) { + writer.startStatement(YangStmtMapping.ANYXML); + writer.writeArgument(qname); + } + + @Override + public void startAnyxmlNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.ANYXML); + writer.writeArgument(rawArgument); + } + + @Override + public void startArgumentNode(final String input) { + writer.startStatement(YangStmtMapping.ARGUMENT); writer.writeArgument(input); } + @Override + public void startAugmentNode(final SchemaPath targetPath) { + writer.startStatement(YangStmtMapping.AUGMENT); + writer.writeArgument(targetPath); + } + + @Override + public void startAugmentNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.AUGMENT); + writer.writeArgument(rawArgument); + } + + @Override + public void startBaseNode(final QName qname) { + writer.startStatement(YangStmtMapping.BASE); + writer.writeArgument(qname); + } + + @Override + public void startBaseNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.BASE); + writer.writeArgument(rawArgument); + } + + @Override + public void startBelongsToNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.BELONGS_TO); + writer.writeArgument(rawArgument); + } + + @Override + public void startBitNode(final String name) { + writer.startStatement(YangStmtMapping.BIT); + writer.writeArgument(name); + } + + @Override + public void startCaseNode(final QName qname) { + writer.startStatement(YangStmtMapping.CASE); + writer.writeArgument(qname); + } + + @Override + public void startCaseNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.CASE); + writer.writeArgument(rawArgument); + } + + @Override + public void startChoiceNode(final QName qname) { + writer.startStatement(YangStmtMapping.CHOICE); + writer.writeArgument(qname); + } + + @Override + public void startChoiceNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.CHOICE); + writer.writeArgument(rawArgument); + } + + @Override + public void startConfigNode(final boolean config) { + writer.startStatement(YangStmtMapping.CONFIG); + writer.writeArgument(Boolean.toString(config)); + } + + @Override + public void startConfigNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.CONFIG); + writer.writeArgument(rawArgument); + } + @Override public void startContactNode(final String input) { - writer.startStatement(Rfc6020Mapping.CONTACT); + writer.startStatement(YangStmtMapping.CONTACT); writer.writeArgument(input); } + @Override + public void startContainerNode(final QName qname) { + writer.startStatement(YangStmtMapping.CONTAINER); + writer.writeArgument(qname); + } + + @Override + public void startContainerNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.CONTAINER); + writer.writeArgument(rawArgument); + } + + @Override + public void startDefaultNode(final String string) { + writer.startStatement(YangStmtMapping.DEFAULT); + writer.writeArgument(string); + } + @Override public void startDescriptionNode(final String input) { - writer.startStatement(Rfc6020Mapping.DESCRIPTION); + writer.startStatement(YangStmtMapping.DESCRIPTION); writer.writeArgument(input); } @Override - public void startReferenceNode(final String input) { - writer.startStatement(Rfc6020Mapping.REFERENCE); - writer.writeArgument(input); + public void startDeviateNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.DEVIATE); + writer.writeArgument(rawArgument); } @Override - public void startUnitsNode(final String input) { - writer.startStatement(Rfc6020Mapping.UNITS); + public void startDeviationNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.DEVIATION); + writer.writeArgument(rawArgument); + } + + @Override + public void startEnumNode(final String name) { + writer.startStatement(YangStmtMapping.ENUM); + writer.writeArgument(name); + } + + @Override + public void startErrorAppTagNode(final String input) { + writer.startStatement(YangStmtMapping.ERROR_APP_TAG); writer.writeArgument(input); } @Override - public void startYangVersionNode(final String input) { - writer.startStatement(Rfc6020Mapping.YANG_VERSION); + public void startErrorMessageNode(final String input) { + writer.startStatement(YangStmtMapping.ERROR_MESSAGE); writer.writeArgument(input); } @Override - public void startNamespaceNode(final URI uri) { - writer.startStatement(Rfc6020Mapping.NAMESPACE); - writer.writeArgument(uri.toString()); + public void startExtensionNode(final QName qname) { + writer.startStatement(YangStmtMapping.EXTENSION); + writer.writeArgument(qname); } @Override - public void startKeyNode(final List keyList) { - writer.startStatement(Rfc6020Mapping.KEY); - final StringBuilder keyStr = new StringBuilder(); - for (final QName item : keyList) { - keyStr.append(item.getLocalName()); - } - writer.writeArgument(keyStr.toString()); + public void startExtensionNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.EXTENSION); + writer.writeArgument(rawArgument); } @Override - public void startPrefixNode(final String input) { - writer.startStatement(Rfc6020Mapping.PREFIX); - writer.writeArgument(input); + public void startFeatureNode(final QName qname) { + writer.startStatement(YangStmtMapping.FEATURE); + writer.writeArgument(qname); } @Override - public void startFeatureNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.FEATURE); - writer.writeArgument(qName); + public void startFeatureNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.FEATURE); + writer.writeArgument(rawArgument); } @Override - public void startExtensionNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.EXTENSION); - writer.writeArgument(qName); + public void startFractionDigitsNode(final Integer fractionDigits) { + writer.startStatement(YangStmtMapping.FRACTION_DIGITS); + writer.writeArgument(fractionDigits.toString()); } @Override - public void startArgumentNode(final String input) { - writer.startStatement(Rfc6020Mapping.ARGUMENT); - writer.writeArgument(input); + public void startFractionDigitsNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.FRACTION_DIGITS); + writer.writeArgument(rawArgument); } @Override - public void startStatusNode(final Status status) { - writer.startStatement(Rfc6020Mapping.STATUS); - writer.writeArgument(status.toString().toLowerCase()); + public void startGroupingNode(final QName qname) { + writer.startStatement(YangStmtMapping.GROUPING); + writer.writeArgument(qname); + } + + @Override + public void startGroupingNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.GROUPING); + writer.writeArgument(rawArgument); } @Override - public void startTypeNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.TYPE); - writer.writeArgument(qName); + public void startIdentityNode(final QName qname) { + writer.startStatement(YangStmtMapping.IDENTITY); + writer.writeArgument(qname); } @Override - public void startLeafNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.LEAF); - writer.writeArgument(qName); + public void startIdentityNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.IDENTITY); + writer.writeArgument(rawArgument); } @Override - public void startContainerNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.CONTAINER); - writer.writeArgument(qName); + public void startIfFeatureNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.IF_FEATURE); + writer.writeArgument(rawArgument); } @Override - public void startGroupingNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.GROUPING); - writer.writeArgument(qName); + public void startImportNode(final String moduleName) { + writer.startStatement(YangStmtMapping.IMPORT); + writer.writeArgument(moduleName); } @Override - public void startRpcNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.RPC); - writer.writeArgument(qName); + public void startIncludeNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.INCLUDE); + writer.writeArgument(rawArgument); } @Override public void startInputNode() { - writer.startStatement(Rfc6020Mapping.INPUT); + writer.startStatement(YangStmtMapping.INPUT); } @Override - public void startOutputNode() { - writer.startStatement(Rfc6020Mapping.OUTPUT); + public void startKeyNode(final List keyList) { + writer.startStatement(YangStmtMapping.KEY); + final StringBuilder keyStr = new StringBuilder(); + final Iterator iter = keyList.iterator(); + while (iter.hasNext()) { + keyStr.append(iter.next().getLocalName()); + if (iter.hasNext()) { + keyStr.append(' '); + } + } + writer.writeArgument(keyStr.toString()); } @Override - public void startLeafListNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.LEAF_LIST); - writer.writeArgument(qName); + public void startKeyNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.KEY); + writer.writeArgument(rawArgument); } @Override - public void startListNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.LIST); - writer.writeArgument(qName); + public void startLeafListNode(final QName qname) { + writer.startStatement(YangStmtMapping.LEAF_LIST); + writer.writeArgument(qname); } @Override - public void startChoiceNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.CHOICE); - writer.writeArgument(qName); + public void startLeafListNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.LEAF_LIST); + writer.writeArgument(rawArgument); } @Override - public void startCaseNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.CASE); - writer.writeArgument(qName); + public void startLeafNode(final QName qname) { + writer.startStatement(YangStmtMapping.LEAF); + writer.writeArgument(qname); } @Override - public void startNotificationNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.NOTIFICATION); - writer.writeArgument(qName); + public void startLeafNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.LEAF); + writer.writeArgument(rawArgument); } @Override - public void startIdentityNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.IDENTITY); - writer.writeArgument(qName); + public void startLengthNode(final String lengthString) { + writer.startStatement(YangStmtMapping.LENGTH); + writer.writeArgument(lengthString); } @Override - public void startBaseNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.BASE); - writer.writeArgument(qName); + public void startListNode(final QName qname) { + writer.startStatement(YangStmtMapping.LIST); + writer.writeArgument(qname); } @Override - public void startTypedefNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.TYPEDEF); - writer.writeArgument(qName); + public void startListNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.LIST); + writer.writeArgument(rawArgument); } @Override - public void startRevisionNode(final Date date) { - writer.startStatement(Rfc6020Mapping.REVISION); - writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date)); + public void startMandatoryNode(final boolean mandatory) { + writer.startStatement(YangStmtMapping.MANDATORY); + writer.writeArgument(Boolean.toString(mandatory)); } @Override - public void startDefaultNode(final String string) { - writer.startStatement(Rfc6020Mapping.DEFAULT); - writer.writeArgument(string); + public void startMandatoryNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.MANDATORY); + writer.writeArgument(rawArgument); } @Override - public void startMustNode(final RevisionAwareXPath xpath) { - writer.startStatement(Rfc6020Mapping.MUST); - writer.writeArgument(xpath); + public void startMaxElementsNode(final Integer max) { + writer.startStatement(YangStmtMapping.MAX_ELEMENTS); + writer.writeArgument(max.toString()); } @Override - public void startErrorMessageNode(final String input) { - writer.startStatement(Rfc6020Mapping.ERROR_MESSAGE); - writer.writeArgument(input); + public void startMaxElementsNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.MAX_ELEMENTS); + writer.writeArgument(rawArgument); } @Override - public void startErrorAppTagNode(final String input) { - writer.startStatement(Rfc6020Mapping.ERROR_APP_TAG); - writer.writeArgument(input); + public void startMinElementsNode(final Integer min) { + writer.startStatement(YangStmtMapping.MIN_ELEMENTS); + writer.writeArgument(min.toString()); } @Override - public void startPatternNode(final String regularExpression) { - writer.startStatement(Rfc6020Mapping.PATTERN); - writer.writeArgument(regularExpression); + public void startMinElementsNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.MIN_ELEMENTS); + writer.writeArgument(rawArgument); } @Override - public void startValueNode(final Integer integer) { - writer.startStatement(Rfc6020Mapping.VALUE); - writer.writeArgument(integer.toString()); + public void startModifierNode(final ModifierKind modifier) { + writer.startStatement(YangStmtMapping.MODIFIER); + writer.writeArgument(modifier.getKeyword()); } @Override - public void startEnumNode(final String name) { - writer.startStatement(Rfc6020Mapping.ENUM); - writer.writeArgument(name); + public void startModifierNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.MODIFIER); + writer.writeArgument(rawArgument); } @Override - public void startRequireInstanceNode(final boolean require) { - writer.startStatement(Rfc6020Mapping.REQUIRE_INSTANCE); - writer.writeArgument(Boolean.toString(require)); + public void startModuleNode(final String identifier) { + writer.startStatement(YangStmtMapping.MODULE); + writer.writeArgument(identifier); } @Override - public void startPathNode(final RevisionAwareXPath revisionAwareXPath) { - writer.startStatement(Rfc6020Mapping.PATH); - writer.writeArgument(revisionAwareXPath); + public void startMustNode(final RevisionAwareXPath xpath) { + writer.startStatement(YangStmtMapping.MUST); + writer.writeArgument(xpath); } @Override - public void startBitNode(final String name) { - writer.startStatement(Rfc6020Mapping.BIT); - writer.writeArgument(name); + public void startMustNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.MUST); + writer.writeArgument(rawArgument); } @Override - public void startPositionNode(final UnsignedInteger position) { - writer.startStatement(Rfc6020Mapping.POSITION); - writer.writeArgument(position.toString()); + public void startNamespaceNode(final URI uri) { + writer.startStatement(YangStmtMapping.NAMESPACE); + writer.writeArgument(uri.toString()); } @Override - public void startImportNode(final String moduleName) { - writer.startStatement(Rfc6020Mapping.IMPORT); - writer.writeArgument(moduleName); + public void startNotificationNode(final QName qname) { + writer.startStatement(YangStmtMapping.NOTIFICATION); + writer.writeArgument(qname); } @Override - public void startRevisionDateNode(final Date date) { - writer.startStatement(Rfc6020Mapping.REVISION_DATE); - writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date)); + public void startNotificationNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.NOTIFICATION); + writer.writeArgument(rawArgument); } @Override - public void startUsesNode(final QName groupingName) { - writer.startStatement(Rfc6020Mapping.USES); - writer.writeArgument(groupingName); + public void startOrderedByNode(final String ordering) { + writer.startStatement(YangStmtMapping.ORDERED_BY); + writer.writeArgument(ordering); } @Override - public void startAugmentNode(final SchemaPath targetPath) { - writer.startStatement(Rfc6020Mapping.AUGMENT); - writer.writeArgument(targetPath); + public void startOrganizationNode(final String input) { + writer.startStatement(YangStmtMapping.ORGANIZATION); + writer.writeArgument(input); } @Override - public void startConfigNode(final boolean config) { - writer.startStatement(Rfc6020Mapping.CONFIG); - writer.writeArgument(Boolean.toString(config)); + public void startOutputNode() { + writer.startStatement(YangStmtMapping.OUTPUT); } @Override - public void startLengthNode(final String lengthString) { - writer.startStatement(Rfc6020Mapping.LENGTH); - writer.writeArgument(lengthString); + public void startPathNode(final RevisionAwareXPath revisionAwareXPath) { + writer.startStatement(YangStmtMapping.PATH); + writer.writeArgument(revisionAwareXPath); } @Override - public void startMaxElementsNode(final Integer max) { - writer.startStatement(Rfc6020Mapping.MAX_ELEMENTS); - writer.writeArgument(max.toString()); + public void startPathNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.PATH); + writer.writeArgument(rawArgument); } @Override - public void startMinElementsNode(final Integer min) { - writer.startStatement(Rfc6020Mapping.MIN_ELEMENTS); - writer.writeArgument(min.toString()); + public void startPatternNode(final String regularExpression) { + writer.startStatement(YangStmtMapping.PATTERN); + writer.writeArgument(regularExpression); + } + + @Override + public void startPositionNode(final UnsignedInteger position) { + writer.startStatement(YangStmtMapping.POSITION); + writer.writeArgument(position.toString()); + } + + @Override + public void startPositionNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.POSITION); + writer.writeArgument(rawArgument); + } + + @Override + public void startPrefixNode(final String input) { + writer.startStatement(YangStmtMapping.PREFIX); + writer.writeArgument(input); } @Override public void startPresenceNode(final boolean presence) { - writer.startStatement(Rfc6020Mapping.PRESENCE); + writer.startStatement(YangStmtMapping.PRESENCE); writer.writeArgument(Boolean.toString(presence)); } @Override - public void startOrderedByNode(final String ordering) { - writer.startStatement(Rfc6020Mapping.ORDERED_BY); - writer.writeArgument(ordering); + public void startPresenceNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.PRESENCE); + writer.writeArgument(rawArgument); } @Override public void startRangeNode(final String rangeString) { - writer.startStatement(Rfc6020Mapping.RANGE); + writer.startStatement(YangStmtMapping.RANGE); writer.writeArgument(rangeString); } @Override - public void startFractionDigitsNode(final Integer fractionDigits) { - writer.startStatement(Rfc6020Mapping.FRACTION_DIGITS); - writer.writeArgument(fractionDigits.toString()); + public void startReferenceNode(final String input) { + writer.startStatement(YangStmtMapping.REFERENCE); + writer.writeArgument(input); } @Override public void startRefineNode(final SchemaPath path) { - writer.startStatement(Rfc6020Mapping.REFINE); + writer.startStatement(YangStmtMapping.REFINE); writer.writeArgument(path); } @Override - public void startMandatoryNode(final boolean mandatory) { - writer.startStatement(Rfc6020Mapping.MANDATORY); - writer.writeArgument(Boolean.toString(mandatory)); + public void startRefineNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.REFINE); + writer.writeArgument(rawArgument); + } + + @Override + public void startRequireInstanceNode(final boolean require) { + writer.startStatement(YangStmtMapping.REQUIRE_INSTANCE); + writer.writeArgument(Boolean.toString(require)); + } + + @Override + public void startRequireInstanceNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.REQUIRE_INSTANCE); + writer.writeArgument(rawArgument); + } + + @Override + public void startRevisionDateNode(final Revision date) { + writer.startStatement(YangStmtMapping.REVISION_DATE); + writer.writeArgument(date.toString()); + } + + @Override + public void startRevisionDateNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.REVISION_DATE); + writer.writeArgument(rawArgument); + } + + @Override + public void startRevisionNode(final Revision date) { + writer.startStatement(YangStmtMapping.REVISION); + writer.writeArgument(date.toString()); + } + + @Override + public void startRevisionNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.REVISION); + writer.writeArgument(rawArgument); } @Override - public void startAnyxmlNode(final QName qName) { - writer.startStatement(Rfc6020Mapping.ANYXML); - writer.writeArgument(qName); + public void startRpcNode(final QName qname) { + writer.startStatement(YangStmtMapping.RPC); + writer.writeArgument(qname); + } + + @Override + public void startRpcNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.RPC); + writer.writeArgument(rawArgument); + } + + @Override + public void startStatusNode(final Status status) { + writer.startStatement(YangStmtMapping.STATUS); + writer.writeArgument(status.toString().toLowerCase()); + } + + @Override + public void startStatusNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.STATUS); + writer.writeArgument(rawArgument); + } + + @Override + public void startSubmoduleNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.SUBMODULE); + writer.writeArgument(rawArgument); + } + + @Override + public void startTypeNode(final QName qname) { + writer.startStatement(YangStmtMapping.TYPE); + writer.writeArgument(qname); + } + + @Override + public void startTypeNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.TYPE); + writer.writeArgument(rawArgument); + } + + @Override + public void startTypedefNode(final QName qname) { + writer.startStatement(YangStmtMapping.TYPEDEF); + writer.writeArgument(qname); + } + + @Override + public void startTypedefNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.TYPEDEF); + writer.writeArgument(rawArgument); + } + + @Override + public void startUniqueNode(final UniqueConstraint uniqueConstraint) { + writer.startStatement(YangStmtMapping.UNIQUE); + final StringBuilder uniqueStr = new StringBuilder(); + final Collection tag = uniqueConstraint.getTag(); + + final Iterator iter = tag.iterator(); + while (iter.hasNext()) { + uniqueStr.append( + String.join("/", Iterables.transform(iter.next().getPathFromRoot(), qn -> qn.getLocalName()))); + if (iter.hasNext()) { + uniqueStr.append(' '); + } + } + writer.writeArgument(uniqueStr.toString()); + } + + @Override + public void startUniqueNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.UNIQUE); + writer.writeArgument(rawArgument); + } + + @Override + public void startUnitsNode(final String input) { + writer.startStatement(YangStmtMapping.UNITS); + writer.writeArgument(input); } @Override @@ -391,14 +671,56 @@ final class SchemaToStatementWriterAdaptor implements Rfc6020ModuleWriter { } @Override - public void startYinElementNode(final boolean yinElement) { - writer.startStatement(Rfc6020Mapping.YIN_ELEMENT); - writer.writeArgument(Boolean.toString(yinElement)); + public void startUsesNode(final QName groupingName) { + writer.startStatement(YangStmtMapping.USES); + writer.writeArgument(groupingName); + } + + @Override + public void startUsesNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.USES); + writer.writeArgument(rawArgument); + } + + @Override + public void startValueNode(final Integer integer) { + writer.startStatement(YangStmtMapping.VALUE); + writer.writeArgument(integer.toString()); + } + + @Override + public void startValueNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.VALUE); + writer.writeArgument(rawArgument); } @Override public void startWhenNode(final RevisionAwareXPath revisionAwareXPath) { - writer.startStatement(Rfc6020Mapping.WHEN); + writer.startStatement(YangStmtMapping.WHEN); writer.writeArgument(revisionAwareXPath); } + + @Override + public void startWhenNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.WHEN); + writer.writeArgument(rawArgument); + } + + @Override + public void startYangVersionNode(final String input) { + writer.startStatement(YangStmtMapping.YANG_VERSION); + writer.writeArgument(input); + } + + @Override + public void startYinElementNode(final boolean yinElement) { + writer.startStatement(YangStmtMapping.YIN_ELEMENT); + writer.writeArgument(Boolean.toString(yinElement)); + } + + @Override + public void startYinElementNode(final String rawArgument) { + writer.startStatement(YangStmtMapping.YIN_ELEMENT); + writer.writeArgument(rawArgument); + } }