GeneratorReactor.linkOriginalGenerator() should be stateless 33/99433/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 25 Jan 2022 12:01:22 +0000 (13:01 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 25 Jan 2022 12:02:50 +0000 (13:02 +0100)
linkOriginalGenerator() does not need to modify GeneratorReactor, make
it static, so that we can disconnect the state manipulation.

JIRA: MDSAL-718
Change-Id: I6ef2b81f4645522e2c6388bfcde48c36527e421a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/GeneratorReactor.java

index 3f862b2c928b78ee00fe17e5963dcd6cab94ff01..3e282c827c21caa40532b94501a87788df48fc79 100644 (file)
@@ -75,7 +75,7 @@ public abstract class AbstractExplicitGenerator<T extends EffectiveStatement<?,
         return statement instanceof CopyableNode && ((CopyableNode) statement).isAugmenting();
     }
 
-    final void linkOriginalGenerator(final GeneratorContext context) {
+    final void linkOriginalGenerator() {
         if (isAddedByUses() || isAugmenting()) {
             LOG.trace("Linking {}", this);
             prev = getParent().getOriginalChild(getQName());
index c48aa4e2dc2e66f5fd7073dfdc11e39d2b5f27ff..db6080c3122468814576fbdcba8d649caf0058a2 100644 (file)
@@ -333,26 +333,24 @@ public final class GeneratorReactor extends GeneratorContext implements Mutable
         }
     }
 
-    private void linkDependencies(final Iterable<? extends Generator> parent) {
+    private static void linkOriginalGenerator(final Iterable<? extends Generator> parent) {
         for (Generator child : parent) {
-            if (child instanceof AbstractDependentGenerator) {
-                ((AbstractDependentGenerator<?>) child).linkDependencies(this);
-            } else if (child instanceof AbstractCompositeGenerator) {
-                stack.push(child);
-                linkDependencies(child);
-                stack.pop();
+            if (child instanceof AbstractExplicitGenerator) {
+                ((AbstractExplicitGenerator<?>) child).linkOriginalGenerator();
+            }
+            if (child instanceof AbstractCompositeGenerator) {
+                linkOriginalGenerator(child);
             }
         }
     }
 
-    private void linkOriginalGenerator(final Iterable<? extends Generator> parent) {
+    private void linkDependencies(final Iterable<? extends Generator> parent) {
         for (Generator child : parent) {
-            if (child instanceof AbstractExplicitGenerator) {
-                ((AbstractExplicitGenerator<?>) child).linkOriginalGenerator(this);
-            }
-            if (child instanceof AbstractCompositeGenerator) {
+            if (child instanceof AbstractDependentGenerator) {
+                ((AbstractDependentGenerator<?>) child).linkDependencies(this);
+            } else if (child instanceof AbstractCompositeGenerator) {
                 stack.push(child);
-                linkOriginalGenerator(child);
+                linkDependencies(child);
                 stack.pop();
             }
         }