BUG-6972: Remove GroupingUtils.needToCreateNewQName()
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / GroupingUtils.java
index 5c7954526e8ea4df4817614f9579d0e620677a30..cff472e33d2b40baf71fad58a5978c5de2520bc4 100644 (file)
@@ -54,71 +54,48 @@ public final class GroupingUtils {
             final StmtContext.Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode) {
 
         final QNameModule newQNameModule = getNewQNameModule(targetCtx, sourceGrpStmtCtx);
-        copyDeclaredStmts(sourceGrpStmtCtx, targetCtx, usesNode, newQNameModule);
-        copyEffectiveStmts(sourceGrpStmtCtx, targetCtx, usesNode, newQNameModule);
-    }
-
-    public static void copyDeclaredStmts(final StatementContextBase<?, ?, ?> sourceGrpStmtCtx,
-            final StatementContextBase<?, ?, ?> targetCtx,
-            final StmtContext.Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode,
-            final QNameModule newQNameModule) {
-        for (final StatementContextBase<?, ?, ?> originalStmtCtx : sourceGrpStmtCtx.declaredSubstatements()) {
-            if (!StmtContextUtils.areFeaturesSupported(originalStmtCtx)) {
-                continue;
-            }
-            if (needToCopyByUses(originalStmtCtx)) {
-                final StatementContextBase<?, ?, ?> copy = originalStmtCtx.createCopy(newQNameModule, targetCtx,
-                        CopyType.ADDED_BY_USES);
-                targetCtx.addEffectiveSubstatement(copy);
-                usesNode.addAsEffectOfStatement(copy);
-            } else if (isReusedByUsesOnTop(originalStmtCtx)) {
-                targetCtx.addEffectiveSubstatement(originalStmtCtx);
-                usesNode.addAsEffectOfStatement(originalStmtCtx);
+        for (final StatementContextBase<?, ?, ?> original : sourceGrpStmtCtx.declaredSubstatements()) {
+            if (StmtContextUtils.areFeaturesSupported(original)) {
+                copyStatement(original, targetCtx, usesNode, newQNameModule);
             }
         }
+
+        for (final StatementContextBase<?, ?, ?> original : sourceGrpStmtCtx.effectiveSubstatements()) {
+            copyStatement(original, targetCtx, usesNode, newQNameModule);
+        }
     }
 
-    public static void copyEffectiveStmts(final StatementContextBase<?, ?, ?> sourceGrpStmtCtx,
+    private static void copyStatement(final StatementContextBase<?, ?, ?> original,
             final StatementContextBase<?, ?, ?> targetCtx,
-            final StmtContext.Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode,
-            final QNameModule newQNameModule) {
-        for (final StatementContextBase<?, ?, ?> originalStmtCtx : sourceGrpStmtCtx.effectiveSubstatements()) {
-            if (needToCopyByUses(originalStmtCtx)) {
-                final StatementContextBase<?, ?, ?> copy = originalStmtCtx.createCopy(newQNameModule, targetCtx,
-                        CopyType.ADDED_BY_USES);
-                targetCtx.addEffectiveSubstatement(copy);
-                usesNode.addAsEffectOfStatement(copy);
-            } else if (isReusedByUsesOnTop(originalStmtCtx)) {
-                targetCtx.addEffectiveSubstatement(originalStmtCtx);
-                usesNode.addAsEffectOfStatement(originalStmtCtx);
-            }
+            final StmtContext.Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> targetUses,
+            final QNameModule targetModule) {
+        if (needToCopyByUses(original)) {
+            final StatementContextBase<?, ?, ?> copy = original.createCopy(targetModule, targetCtx,
+                    CopyType.ADDED_BY_USES);
+            targetCtx.addEffectiveSubstatement(copy);
+            targetUses.addAsEffectOfStatement(copy);
+        } else if (isReusedByUsesOnTop(original)) {
+            targetCtx.addEffectiveSubstatement(original);
+            targetUses.addAsEffectOfStatement(original);
         }
     }
 
     public static QNameModule getNewQNameModule(final StatementContextBase<?, ?, ?> targetCtx,
             final StmtContext<?, ?, ?> stmtContext) {
-        if (needToCreateNewQName(stmtContext.getPublicDefinition())) {
-            if (targetCtx.isRootContext()) {
-                return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx);
-            }
-            if (targetCtx.getPublicDefinition() == Rfc6020Mapping.AUGMENT) {
-                return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx.getRoot());
-            }
+        if (targetCtx.isRootContext()) {
+            return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx);
+        }
+        if (targetCtx.getPublicDefinition() == Rfc6020Mapping.AUGMENT) {
+            return targetCtx.getFromNamespace(ModuleCtxToModuleQName.class, targetCtx.getRoot());
+        }
 
-            final Object targetStmtArgument = targetCtx.getStatementArgument();
-            final Object sourceStmtArgument = stmtContext.getStatementArgument();
-            if (targetStmtArgument instanceof QName && sourceStmtArgument instanceof QName) {
-                return ((QName) targetStmtArgument).getModule();
-            } else {
-                return null;
-            }
-        } else {
-            return null;
+        final Object targetStmtArgument = targetCtx.getStatementArgument();
+        final Object sourceStmtArgument = stmtContext.getStatementArgument();
+        if (targetStmtArgument instanceof QName && sourceStmtArgument instanceof QName) {
+            return ((QName) targetStmtArgument).getModule();
         }
-    }
 
-    public static boolean needToCreateNewQName(final StatementDefinition publicDefinition) {
-        return true;
+        return null;
     }
 
     private static final Set<Rfc6020Mapping> NOCOPY_DEF_SET = ImmutableSet.of(Rfc6020Mapping.USES,