import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
+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.StmtContextUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
private static final ArgumentStatementSupport INSTANCE = new ArgumentStatementSupport();
private ArgumentStatementSupport() {
- super(YangStmtMapping.ARGUMENT);
+ super(YangStmtMapping.ARGUMENT, StatementPolicy.reject());
}
public static ArgumentStatementSupport getInstance() {
@Override
protected ArgumentStatement createDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularArgumentStatement(ctx.coerceStatementArgument(), substatements);
+ return new RegularArgumentStatement(ctx.getArgument(), substatements);
}
@Override
protected ArgumentStatement createEmptyDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx) {
- return new EmptyArgumentStatement(ctx.coerceStatementArgument());
+ return new EmptyArgumentStatement(ctx.getArgument());
}
@Override
- protected ArgumentEffectiveStatement createEffective(
- final StmtContext<QName, ArgumentStatement, ArgumentEffectiveStatement> ctx,
- final ArgumentStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new RegularArgumentEffectiveStatement(declared, substatements);
- }
-
- @Override
- protected ArgumentEffectiveStatement createEmptyEffective(
- final StmtContext<QName, ArgumentStatement, ArgumentEffectiveStatement> ctx,
- final ArgumentStatement declared) {
- return new EmptyArgumentEffectiveStatement(declared);
+ protected ArgumentEffectiveStatement createEffective(final Current<QName, ArgumentStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return substatements.isEmpty() ? new EmptyArgumentEffectiveStatement(stmt.declared())
+ : new RegularArgumentEffectiveStatement(stmt.declared(), substatements);
}
}