import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PathEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
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.SubstatementValidator;
public final class PathStatementSupport
- extends BaseStatementSupport<PathExpression, PathStatement, PathEffectiveStatement> {
+ extends AbstractStatementSupport<PathExpression, PathStatement, PathEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.PATH).build();
private static final PathStatementSupport LENIENT_INSTANCE = new PathStatementSupport(
private final PathExpressionParser parser;
private PathStatementSupport(final PathExpressionParser parser) {
- super(YangStmtMapping.PATH);
+ // TODO: can 'path' really be copied?
+ super(YangStmtMapping.PATH, StatementPolicy.contextIndependent());
this.parser = requireNonNull(parser);
}
@Override
protected PathStatement createDeclared(final StmtContext<PathExpression, PathStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularPathStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createPath(ctx.getArgument(), substatements);
}
@Override
protected PathStatement createEmptyDeclared(final StmtContext<PathExpression, PathStatement, ?> ctx) {
- return new EmptyPathStatement(ctx.getArgument());
+ return DeclaredStatements.createPath(ctx.getArgument());
}
@Override
protected PathEffectiveStatement createEffective(final Current<PathExpression, PathStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyPathEffectiveStatement(stmt.declared())
- : new RegularPathEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createPath(stmt.declared(), substatements);
}
}
\ No newline at end of file