Centralize ReactorStmtCtx.replicaAsChildOf() 24/94824/4
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Jan 2021 16:51:37 +0000 (17:51 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Jan 2021 18:15:31 +0000 (19:15 +0100)
This allows the implementations to rely on dealing with its peer
constructs.

JIRA: YANGTOOLS-1212
Change-Id: I4065e10e1580bb1324448f05a9f6a3ae6bcdd30c
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/ReplicaStatementContext.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java

index b289c65433a41a73d5d4e6318fd84f3a13220463..402e0d2c18a823b5cc06f9bc785237bf239dcd31 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.stmt.reactor;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Verify.verify;
 
 import com.google.common.base.MoreObjects;
@@ -315,6 +316,14 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
     abstract @Nullable ReactorStmtCtx<?, ?, ?> asEffectiveChildOf(StatementContextBase<?, ?, ?> parent, CopyType type,
         QNameModule targetModule);
 
+    @Override
+    public final ReactorStmtCtx<A, D, E> replicaAsChildOf(final Mutable<?, ?, ?> parent) {
+        checkArgument(parent instanceof StatementContextBase, "Unsupported parent %s", parent);
+        return replicaAsChildOf((StatementContextBase<?, ?, ?>) parent);
+    }
+
+    abstract @NonNull ReplicaStatementContext<A, D, E> replicaAsChildOf(@NonNull StatementContextBase<?, ?, ?> parent);
+
     //
     //
     // Statement build entry points -- both public and package-private.
index c5c7d3862a41638657956bc0966f891b29d10c52..68f750ce4b3ab74dfef50370a367bd301b12bdb2 100644 (file)
@@ -107,7 +107,7 @@ final class ReplicaStatementContext<A, D extends DeclaredStatement<A>, E extends
     }
 
     @Override
-    public Mutable<A, D, E> replicaAsChildOf(final Mutable<?, ?, ?> newParent) {
+    ReplicaStatementContext<A, D, E> replicaAsChildOf(final StatementContextBase<?, ?, ?> newParent) {
         return source.replicaAsChildOf(newParent);
     }
 
index 19837d22874d475ceeeb1c4bc704847778e619b6..d305f77879a8e25fb5d480b5ba2f8a7f6ff44bf1 100644 (file)
@@ -738,13 +738,8 @@ public abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E
     }
 
     @Override
-    public final ReactorStmtCtx<A, D, E> replicaAsChildOf(final Mutable<?, ?, ?> parent) {
-        checkArgument(parent instanceof StatementContextBase, "Unsupported parent %s", parent);
-        return replicaAsChildOf((StatementContextBase<?, ?, ?>) parent);
-    }
-
-    final @NonNull ReplicaStatementContext<A, D, E> replicaAsChildOf(final StatementContextBase<?, ?, ?> stmt) {
-        return new ReplicaStatementContext<>(stmt, this);
+    final ReplicaStatementContext<A, D, E> replicaAsChildOf(final StatementContextBase<?, ?, ?> parent) {
+        return new ReplicaStatementContext<>(parent, this);
     }
 
     private static void checkEffectiveModelCompleted(final StmtContext<?, ?, ?> stmt) {