Add YinXMLEventReaderFactory
[yangtools.git] / yang / yang-model-export / src / main / java / org / opendaylight / yangtools / yang / model / export / YangTextSnippetIterator.java
index 5830f1862245d04f08693d6b6d347a450a18e920..4e18d885e1bacf85d301ee86f2303e101dfd84c3 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.export;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Verify.verify;
 import static java.util.Objects.requireNonNull;
 import static org.eclipse.jdt.annotation.DefaultLocation.PARAMETER;
 import static org.eclipse.jdt.annotation.DefaultLocation.RETURN_TYPE;
@@ -24,6 +22,7 @@ import java.util.Collection;
 import java.util.Deque;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Queue;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -31,7 +30,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -198,7 +196,11 @@ final class YangTextSnippetIterator extends AbstractIterator<@NonNull String> {
 
         // Add statement prefixed with namespace if needed
         final QName stmtName = def.getStatementName();
-        addNamespace(stmtName.getModule());
+        final Optional<String> prefix = ExportUtils.statementPrefix(namespaces, stmtName);
+        if (prefix.isPresent()) {
+            strings.add(prefix.get());
+            strings.add(":");
+        }
         strings.add(stmtName.getLocalName());
 
         // Add argument, quoted and properly indented if need be
@@ -227,19 +229,6 @@ final class YangTextSnippetIterator extends AbstractIterator<@NonNull String> {
         }
     }
 
-    private void addNamespace(final QNameModule namespace) {
-        if (YangConstants.RFC6020_YIN_MODULE.equals(namespace)) {
-            // Default namespace, no prefix needed
-            return;
-        }
-
-        final @Nullable String prefix = namespaces.get(namespace);
-        checkArgument(prefix != null, "Failed to find prefix for namespace %s", namespace);
-        verify(!prefix.isEmpty(), "Empty prefix for namespace %s", namespace);
-        strings.add(prefix);
-        strings.add(":");
-    }
-
     private void addArgument(final StatementDefinition def, final @Nullable String arg) {
         if (arg == null) {
             // No argument, nothing to do