import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
abstract class AbstractRefineStatementSupport
@Override
protected final RefineStatement createDeclared(final StmtContext<Descendant, RefineStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RefineStatementImpl(ctx, substatements);
+ return new RefineStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected final RefineStatement createEmptyDeclared(final StmtContext<Descendant, RefineStatement, ?> ctx) {
// Empty refine is exceedingly unlikely: let's be lazy and reuse the implementation
- return new RefineStatementImpl(ctx, ImmutableList.of());
+ return createDeclared(ctx, ImmutableList.of());
}
@Override
- protected final RefineEffectiveStatement createEffective(
- final StmtContext<Descendant, RefineStatement, RefineEffectiveStatement> ctx,
- final RefineStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new RefineEffectiveStatementImpl(declared, substatements, ctx.getSchemaPath().get(),
- (SchemaNode) ctx.getEffectOfStatement().iterator().next().buildEffective());
- }
-
- @Override
- protected final RefineEffectiveStatement createEmptyEffective(
- final StmtContext<Descendant, RefineStatement, RefineEffectiveStatement> ctx,
- final RefineStatement declared) {
+ protected final RefineEffectiveStatement createEffective(final Current<Descendant, RefineStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
// Empty refine is exceedingly unlikely: let's be lazy and reuse the implementation
- return createEffective(ctx, declared, ImmutableList.of());
+ return new RefineEffectiveStatementImpl(stmt.declared(), substatements, stmt.getSchemaPath(),
+ (SchemaNode) stmt.caerbannog().getEffectOfStatement().iterator().next().buildEffective());
}
}