Remove ReactorStmtCtx.parentStmtCtx() 04/94004/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Dec 2020 12:36:59 +0000 (13:36 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Dec 2020 12:37:40 +0000 (13:37 +0100)
We have the same facility in StatementContextBase.getParentContext(),
hence we can directly reuse it.

JIRA: YANGTOOLS-1184
Change-Id: Ie0d13fc86e50764a5e27ed0cb3d1d5731ddf6116
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java

index 3fc51ceb6a55849e46c7bc7bc58f9378097c6db5..7cde7fdf741619be5926ff0b64fee0225b635069 100644 (file)
@@ -11,7 +11,6 @@ import static com.google.common.base.Verify.verify;
 
 import com.google.common.base.VerifyException;
 import java.util.Collection;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
@@ -81,6 +80,9 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
      */
     private static final int REFCOUNT_SWEPT = Integer.MIN_VALUE;
 
+    @Override
+    public abstract StatementContextBase<?, ?, ?> getParentContext();
+
     /**
      * Acquire a reference on this context. As long as there is at least one reference outstanding,
      * {@link #buildEffective()} will not result in {@link #effectiveSubstatements()} being discarded.
@@ -170,8 +172,6 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
 
     abstract boolean noImplictRef();
 
-    abstract @Nullable ReactorStmtCtx<?, ?, ?> parentStmtCtx();
-
     // Called when this statement does not have an implicit reference and have reached REFCOUNT_NONE
     private void sweepOnDecrement() {
         LOG.trace("Sweeping on decrement {}", this);
@@ -181,7 +181,7 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
         }
 
         // Propagate towards parent if there is one
-        final ReactorStmtCtx<?, ?, ?> parent = parentStmtCtx();
+        final ReactorStmtCtx<?, ?, ?> parent = getParentContext();
         if (parent != null) {
             parent.sweepOnChildDecrement();
         }
@@ -206,7 +206,7 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
         if (noParentRefcount()) {
             LOG.trace("Cleanup {} of parent {}", refcount, this);
             if (sweepState()) {
-                final ReactorStmtCtx<?, ?, ?> parent = parentStmtCtx();
+                final ReactorStmtCtx<?, ?, ?> parent = getParentContext();
                 if (parent != null) {
                     parent.sweepOnChildDecrement();
                 }
@@ -216,7 +216,7 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
 
     // FIXME: cache the resolution of this
     private boolean noParentRefcount() {
-        final ReactorStmtCtx<?, ?, ?> parent = parentStmtCtx();
+        final ReactorStmtCtx<?, ?, ?> parent = getParentContext();
         if (parent != null) {
             // There are three possibilities:
             // - REFCOUNT_NONE, in which case we need to search next parent
@@ -251,7 +251,7 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
         LOG.trace("Child refcount {}", refcount);
         if (refcount == REFCOUNT_NONE) {
             sweepDone();
-            final ReactorStmtCtx<?, ?, ?> parent = parentStmtCtx();
+            final ReactorStmtCtx<?, ?, ?> parent = getParentContext();
             LOG.trace("Propagating to parent {}", parent);
             if (parent != null && parent.isAwaitingChildren()) {
                 parent.sweepOnChildDone();
index 64e2f766a5f71d0bd14bed10b01da7832a84f9de..50198334ce4187d87d7a2c393b90283f5ea86b2d 100644 (file)
@@ -264,9 +264,6 @@ public abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E
         this.completedPhase = completedPhase;
     }
 
-    @Override
-    public abstract StatementContextBase<?, ?, ?> getParentContext();
-
     /**
      * Returns the model root for this statement.
      *
@@ -975,11 +972,6 @@ public abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E
         return effectiveInstance != null || !isSupportedToBuildEffective();
     }
 
-    @Override
-    final ReactorStmtCtx<?, ?, ?> parentStmtCtx() {
-        return getParentContext();
-    }
-
     /**
      * Config statements are not all that common which means we are performing a recursive search towards the root
      * every time {@link #isConfiguration()} is invoked. This is quite expensive because it causes a linear search