Allow derived context to be reused
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / BaseOperationContainerStatementSupport.java
index e5d0027189c49487da950376925d27b03e23ce5f..498d311c9b58c676fb9082317b1471b874096aac 100644 (file)
@@ -47,6 +47,26 @@ public abstract class BaseOperationContainerStatementSupport<D extends DeclaredS
         return createArgument.apply(StmtContextUtils.getRootModuleQName(ctx));
     }
 
+    @Override
+    protected final @NonNull E copyDeclaredEffective(final Current<QName, D> stmt, final E original) {
+        return copyDeclaredEffective(
+            EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements()),
+            stmt, original);
+    }
+
+    protected abstract @NonNull E copyDeclaredEffective(int flags, @NonNull Current<QName, D> stmt,
+        @NonNull E original);
+
+    @Override
+    protected final @NonNull E copyUndeclaredEffective(final Current<QName, D> stmt, final E original) {
+        return copyUndeclaredEffective(
+            EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements()),
+            stmt, original);
+    }
+
+    protected abstract @NonNull E copyUndeclaredEffective(int flags, @NonNull Current<QName, D> stmt,
+        @NonNull E original);
+
     @Override
     protected final @NonNull E createDeclaredEffective(final Current<QName, D> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {