Reformulate StatementContextFactory.createEffective()
[yangtools.git] / yang / rfc8040-parser-support / src / main / java / org / opendaylight / yangtools / rfc8040 / parser / YangDataStatementSupport.java
index 26b31b0fb8747220294c31e7f8e4dd770e2c4e92..7d35ddc8bd993b85de7007125f638b12081f1d44 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStringStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -88,20 +89,12 @@ public final class YangDataStatementSupport
     }
 
     @Override
-    protected YangDataEffectiveStatement createEffective(
-            final StmtContext<String, YangDataStatement, YangDataEffectiveStatement> ctx,
-            final YangDataStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+    protected YangDataEffectiveStatement createEffective(final Current<String, YangDataStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         // in case of yang-data node we need to perform substatement validation at the point when we have
         // effective substatement contexts already available - if the node has only a uses statement declared in it,
         // one top-level container node may very well be added to the yang-data as an effective statement
-        validator.validate(ctx);
-        return new YangDataEffectiveStatementImpl(declared, substatements, ctx);
-    }
-
-    @Override
-    protected YangDataEffectiveStatement createEmptyEffective(
-            final StmtContext<String, YangDataStatement, YangDataEffectiveStatement> ctx,
-            final YangDataStatement declared) {
-        return createEffective(ctx, declared, ImmutableList.of());
+        validator.validate(stmt.caerbannog());
+        return new YangDataEffectiveStatementImpl(stmt, substatements);
     }
 }