Use instantiatedPolicy() for leaf-list statements
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / BaseOperationContainerStatementSupport.java
index 580b999540bb8a6abecaadef37da5b24e6aa3bd4..498d311c9b58c676fb9082317b1471b874096aac 100644 (file)
@@ -38,7 +38,7 @@ public abstract class BaseOperationContainerStatementSupport<D extends DeclaredS
 
     protected BaseOperationContainerStatementSupport(final StatementDefinition publicDefinition,
             final Function<QNameModule, QName> createArgument) {
-        super(publicDefinition, StatementPolicy.legacyDeclaredCopy());
+        super(publicDefinition, uninstantiatedPolicy());
         this.createArgument = requireNonNull(createArgument);
     }
 
@@ -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) {