Do not force materialization when not needed
[yangtools.git] / yang / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / ForwardingStatementSupport.java
index f0c4ff42a5a20428bab12fd4e3debdc7e23f5d29..0d15f1451aea98c63489027962bb242d655a0c3f 100644 (file)
@@ -9,10 +9,12 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ForwardingObject;
-import org.opendaylight.yangtools.yang.common.QNameModule;
+import java.util.Collection;
+import java.util.stream.Stream;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
 
 /**
@@ -38,8 +40,10 @@ public abstract class ForwardingStatementSupport<A, D extends DeclaredStatement<
     }
 
     @Override
-    public E createEffective(final StmtContext<A, D, E> ctx) {
-        return delegate().createEffective(ctx);
+    public E createEffective(final Current<A, D> stmt,
+            final Stream<? extends StmtContext<?, ?, ?>> declaredSubstatements,
+            final Stream<? extends StmtContext<?, ?, ?>> effectiveSubstatements) {
+        return delegate().createEffective(stmt, declaredSubstatements, effectiveSubstatements);
     }
 
     @Override
@@ -88,8 +92,13 @@ public abstract class ForwardingStatementSupport<A, D extends DeclaredStatement<
     }
 
     @Override
-    public CopyPolicy applyCopyPolicy(final Mutable<?, ?, ?> stmt, final Mutable<?, ?, ?> parent,
-            final CopyType copyType, final QNameModule targetModule) {
-        return delegate().applyCopyPolicy(stmt, parent, copyType, targetModule);
+    public CopyPolicy copyPolicy() {
+        return delegate().copyPolicy();
+    }
+
+    @Override
+    public boolean canReuseCurrent(final Current<A, D> copy, final Current<A, D> current,
+            final Collection<? extends EffectiveStatement<?, ?>> substatements) {
+        return delegate().canReuseCurrent(copy, current, substatements);
     }
 }