Reformulate StatementContextFactory.createEffective()
[yangtools.git] / yang / rfc8040-parser-support / src / main / java / org / opendaylight / yangtools / rfc8040 / parser / YangDataEffectiveStatementImpl.java
index d5f81d2999115375519a83838cae8ebb1305fd10..67ad368e4371e458d730394753c94236b65b9abb 100644 (file)
@@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 @Beta
@@ -32,20 +32,19 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase
     private final @NonNull QName maybeQNameArgument;
     private final @NonNull ContainerEffectiveStatement container;
 
-    YangDataEffectiveStatementImpl(final YangDataStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final StmtContext<String, YangDataStatement, ?> ctx) {
-        super(ctx.getStatementArgument(), declared, substatements, ctx);
+    YangDataEffectiveStatementImpl(final Current<String, YangDataStatement> stmt,
+             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(stmt, substatements);
 
         QName maybeQNameArgumentInit;
         try {
-            maybeQNameArgumentInit = StmtContextUtils.parseIdentifier(ctx, argument());
+            maybeQNameArgumentInit = StmtContextUtils.parseIdentifier(stmt.caerbannog(), argument());
         } catch (IllegalArgumentException e) {
             maybeQNameArgumentInit = getNodeType();
         }
         this.maybeQNameArgument = maybeQNameArgumentInit;
 
-        path = ctx.coerceParentContext().getSchemaPath().get().createChild(maybeQNameArgument);
+        path = stmt.getParent().getSchemaPath().createChild(maybeQNameArgument);
         container = findFirstEffectiveSubstatement(ContainerEffectiveStatement.class).get();
 
         // TODO: this is strong binding of two API contracts. Unfortunately ContainerEffectiveStatement design is