Trigger onStatementAdded() for replicas 86/99086/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Dec 2021 17:22:27 +0000 (18:22 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 18 Dec 2021 17:08:05 +0000 (18:08 +0100)
When a statement is introduced through StmtContext.replicaAsChildOf(),
the corresponding statement support should be notified of this fact, so
it can properly do its thing. This makes it consistent with
Mutable.childCopyOf().

JIRA: YANGTOOLS-1386
Change-Id: Ic947ea5fc822a29ff915d47db1cc591a2a18fd44
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit b0aea307301907059ea1d82ca39d7d257d28e1c6)

parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java

index 48a4b56b0def28feabafaef3fda9b187af3533f4..e1976c7ba5cc71f7258a24831d685cce99227869 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Parent;
 import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
@@ -369,9 +370,11 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
         QNameModule targetModule);
 
     @Override
-    public final ReactorStmtCtx<A, D, E> replicaAsChildOf(final Mutable<?, ?, ?> parent) {
+    public final ReplicaStatementContext<A, D, E> replicaAsChildOf(final Mutable<?, ?, ?> parent) {
         checkArgument(parent instanceof StatementContextBase, "Unsupported parent %s", parent);
-        return replicaAsChildOf((StatementContextBase<?, ?, ?>) parent);
+        final var ret = replicaAsChildOf((StatementContextBase<?, ?, ?>) parent);
+        definition().onStatementAdded(ret);
+        return ret;
     }
 
     abstract @NonNull ReplicaStatementContext<A, D, E> replicaAsChildOf(@NonNull StatementContextBase<?, ?, ?> parent);