From cdb74399f5dd174bc1deb1cb8ea0f4671adb1d85 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 2 Dec 2020 13:36:59 +0100 Subject: [PATCH] Remove ReactorStmtCtx.parentStmtCtx() 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 --- .../yang/parser/stmt/reactor/ReactorStmtCtx.java | 14 +++++++------- .../parser/stmt/reactor/StatementContextBase.java | 8 -------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java index 3fc51ceb6a..7cde7fdf74 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java @@ -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, 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, 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, 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, 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, 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, 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(); diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index 64e2f766a5..50198334ce 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -264,9 +264,6 @@ public abstract class StatementContextBase, E this.completedPhase = completedPhase; } - @Override - public abstract StatementContextBase getParentContext(); - /** * Returns the model root for this statement. * @@ -975,11 +972,6 @@ public abstract class StatementContextBase, 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 -- 2.36.6