@Override
 public void startKeyNode(final List<QName> keyList) {
   writer.startStatement(Rfc6020Mapping.KEY);
   final StringBuilder keyStr = new StringBuilder();
   final Iterator<QName> iter = keyList.iterator();
   while (iter.hasNext()) {
     keyStr.append(iter.next().getLocalName());
     if (iter.hasNext()) {
       keyStr.append(' ');
     }
   }
   writer.writeArgument(keyStr.toString());
 }
 @Override
 public void startImportNode(final String moduleName) {
   writer.startStatement(Rfc6020Mapping.IMPORT);
   writer.writeArgument(moduleName);
 }
 @Override
 public void startNamespaceNode(final URI uri) {
   writer.startStatement(Rfc6020Mapping.NAMESPACE);
   writer.writeArgument(uri.toString());
 }
 @Override
 public void startUnitsNode(final String input) {
   writer.startStatement(Rfc6020Mapping.UNITS);
   writer.writeArgument(input);
 }
 @Override
 public void startDescriptionNode(final String input) {
   writer.startStatement(Rfc6020Mapping.DESCRIPTION);
   writer.writeArgument(input);
 }
 @Override
 public void startOrganizationNode(final String input) {
   writer.startStatement(Rfc6020Mapping.ORGANIZATION);
   writer.writeArgument(input);
 }
 @Override
 public void startWhenNode(final RevisionAwareXPath revisionAwareXPath) {
   writer.startStatement(Rfc6020Mapping.WHEN);
   writer.writeArgument(revisionAwareXPath);
 }
 @Override
 public void startUnknownNode(final StatementDefinition def, final String nodeParameter) {
   writer.startStatement(def);
   writer.writeArgument(nodeParameter);
 }
 @Override
 public void startMinElementsNode(final Integer min) {
   writer.startStatement(Rfc6020Mapping.MIN_ELEMENTS);
   writer.writeArgument(min.toString());
 }
 @Override
 public void startMaxElementsNode(final Integer max) {
   writer.startStatement(Rfc6020Mapping.MAX_ELEMENTS);
   writer.writeArgument(max.toString());
 }
 @Override
 public void startLengthNode(final String lengthString) {
   writer.startStatement(Rfc6020Mapping.LENGTH);
   writer.writeArgument(lengthString);
 }
 @Override
 public void startConfigNode(final boolean config) {
   writer.startStatement(Rfc6020Mapping.CONFIG);
   writer.writeArgument(Boolean.toString(config));
 }
 @Override
 public void startAugmentNode(final SchemaPath targetPath) {
   writer.startStatement(Rfc6020Mapping.AUGMENT);
   writer.writeArgument(targetPath);
 }
 @Override
 public void startUsesNode(final QName groupingName) {
   writer.startStatement(Rfc6020Mapping.USES);
   writer.writeArgument(groupingName);
 }
 @Override
 public void startRevisionDateNode(final Date date) {
   writer.startStatement(Rfc6020Mapping.REVISION_DATE);
   writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date));
 }
 @Override
 public void startUnknownNode(final StatementDefinition def) {
   writer.startStatement(def);
 }
 @Override
 public void endNode() {
   writer.endStatement();
 }
 @Override
 public void startPresenceNode(final boolean presence) {
   writer.startStatement(Rfc6020Mapping.PRESENCE);
   writer.writeArgument(Boolean.toString(presence));
 }
 @Override
 public void startYinElementNode(final boolean yinElement) {
   writer.startStatement(Rfc6020Mapping.YIN_ELEMENT);
   writer.writeArgument(Boolean.toString(yinElement));
 }
 @Override
 public void startOrderedByNode(final String ordering) {
   writer.startStatement(Rfc6020Mapping.ORDERED_BY);
   writer.writeArgument(ordering);
 }
 @Override
 public void startModuleNode(final String identifier) {
   writer.startStatement(Rfc6020Mapping.MODULE);
   writer.writeArgument(identifier);
 }
 @Override
 public void startRangeNode(final String rangeString) {
   writer.startStatement(Rfc6020Mapping.RANGE);
   writer.writeArgument(rangeString);
 }
 @Override
 public void startContactNode(final String input) {
   writer.startStatement(Rfc6020Mapping.CONTACT);
   writer.writeArgument(input);
 }
 @Override
 public void startFractionDigitsNode(final Integer fractionDigits) {
   writer.startStatement(Rfc6020Mapping.FRACTION_DIGITS);
   writer.writeArgument(fractionDigits.toString());
 }
 @Override
 public void startReferenceNode(final String input) {
   writer.startStatement(Rfc6020Mapping.REFERENCE);
   writer.writeArgument(input);
 }
 @Override
 public void startRefineNode(final SchemaPath path) {
   writer.startStatement(Rfc6020Mapping.REFINE);
   writer.writeArgument(path);
 }
 @Override
 public void startYangVersionNode(final String input) {
   writer.startStatement(Rfc6020Mapping.YANG_VERSION);
   writer.writeArgument(input);
 }
 @Override
 public void startMandatoryNode(final boolean mandatory) {
   writer.startStatement(Rfc6020Mapping.MANDATORY);
   writer.writeArgument(Boolean.toString(mandatory));
 }
 @Override
 public void startAnyxmlNode(final QName qName) {
   writer.startStatement(Rfc6020Mapping.ANYXML);
   writer.writeArgument(qName);
 }
 @Override
 public void startPositionNode(final UnsignedInteger position) {
   writer.startStatement(Rfc6020Mapping.POSITION);
   writer.writeArgument(position.toString());
 }