import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
-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.rfc7950.stmt.XPathSupport;
+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;
import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
public final class WhenStatementSupport
- extends BaseStatementSupport<QualifiedBound, WhenStatement, WhenEffectiveStatement> {
+ extends AbstractStatementSupport<QualifiedBound, WhenStatement, WhenEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.WHEN)
.addOptional(YangStmtMapping.DESCRIPTION)
private final @NonNull XPathSupport xpathSupport;
private WhenStatementSupport(final XPathSupport xpathSupport) {
- // Note: declared copy to future-proof when we bind expressions
- super(YangStmtMapping.WHEN, CopyPolicy.DECLARED_COPY);
+ // Note: if we end up binding expressions, this needs to become declaredCopy()
+ super(YangStmtMapping.WHEN, StatementPolicy.contextIndependent());
this.xpathSupport = requireNonNull(xpathSupport);
}
@Override
protected WhenStatement createDeclared(final StmtContext<QualifiedBound, WhenStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularWhenStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createWhen(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected WhenStatement createEmptyDeclared(final StmtContext<QualifiedBound, WhenStatement, ?> ctx) {
- return new EmptyWhenStatement(ctx.getRawArgument(), ctx.getArgument());
+ return DeclaredStatements.createWhen(ctx.getRawArgument(), ctx.getArgument());
}
@Override
protected WhenEffectiveStatement createEffective(final Current<QualifiedBound, WhenStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyWhenEffectiveStatement(stmt.declared())
- : new RegularWhenEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createWhen(stmt.declared(), substatements);
}
}