import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
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 MustStatementSupport
- extends BaseStatementSupport<QualifiedBound, MustStatement, MustEffectiveStatement> {
+ extends AbstractStatementSupport<QualifiedBound, MustStatement, MustEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
.MUST)
.addOptional(YangStmtMapping.DESCRIPTION)
private final @NonNull XPathSupport xpathSupport;
private MustStatementSupport(final XPathSupport xpathSupport) {
- super(YangStmtMapping.MUST);
+ // Note: if we end up binding expressions, this needs to become declaredCopy()
+ super(YangStmtMapping.MUST, StatementPolicy.contextIndependent());
this.xpathSupport = requireNonNull(xpathSupport);
}
@Override
protected MustStatement createDeclared(final StmtContext<QualifiedBound, MustStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularMustStatement(ctx.coerceRawStatementArgument(), ctx.coerceStatementArgument(), substatements);
+ return DeclaredStatements.createMust(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected MustStatement createEmptyDeclared(final StmtContext<QualifiedBound, MustStatement, ?> ctx) {
- return new EmptyMustStatement(ctx.coerceRawStatementArgument(), ctx.coerceStatementArgument());
+ return DeclaredStatements.createMust(ctx.getRawArgument(), ctx.getArgument());
}
@Override