import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber;
import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
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.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
public final class LengthStatementSupport
- extends BaseStatementSupport<List<ValueRange>, LengthStatement, LengthEffectiveStatement> {
+ extends AbstractStatementSupport<List<ValueRange>, LengthStatement, LengthEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
.LENGTH)
.addOptional(YangStmtMapping.DESCRIPTION)
private static final LengthStatementSupport INSTANCE = new LengthStatementSupport();
private LengthStatementSupport() {
- super(YangStmtMapping.LENGTH, CopyPolicy.CONTEXT_INDEPENDENT);
+ super(YangStmtMapping.LENGTH, StatementPolicy.contextIndependent());
}
public static LengthStatementSupport getInstance() {
max = parseIntegerConstraintValue(ctx, boundaries.next());
// if min larger than max then error
- SourceException.throwIf(ArgumentUtils.compareNumbers(min, max) == 1, ctx.getStatementSourceReference(),
- "Length constraint %s has descending order of boundaries; should be ascending.", singleRange);
- SourceException.throwIf(boundaries.hasNext(), ctx.getStatementSourceReference(),
- "Wrong number of boundaries in length constraint %s.", singleRange);
+ SourceException.throwIf(ArgumentUtils.compareNumbers(min, max) == 1, ctx,
+ "Length constraint %s has descending order of boundaries; should be ascending.", singleRange);
+ SourceException.throwIf(boundaries.hasNext(), ctx,
+ "Wrong number of boundaries in length constraint %s.", singleRange);
} else {
max = min;
}
// some of intervals overlapping
- InferenceException.throwIf(ranges.size() > 1
- && ArgumentUtils.compareNumbers(min, Iterables.getLast(ranges).upperBound()) != 1,
- ctx.getStatementSourceReference(), "Some of the length ranges in %s are not disjoint", value);
+ InferenceException.throwIf(
+ ranges.size() > 1 && ArgumentUtils.compareNumbers(min, Iterables.getLast(ranges).upperBound()) != 1,
+ ctx, "Some of the length ranges in %s are not disjoint", value);
ranges.add(ValueRange.of(min, max));
}
@Override
protected LengthStatement createDeclared(final StmtContext<List<ValueRange>, LengthStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularLengthStatement(ctx.coerceRawStatementArgument(), ctx.coerceStatementArgument(),
- substatements);
+ return new RegularLengthStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected LengthStatement createEmptyDeclared(final StmtContext<List<ValueRange>, LengthStatement, ?> ctx) {
- return new EmptyLengthStatement(ctx.coerceRawStatementArgument(), ctx.coerceStatementArgument());
+ return new EmptyLengthStatement(ctx.getRawArgument(), ctx.getArgument());
}
@Override
try {
return new BigInteger(value);
} catch (final NumberFormatException e) {
- throw new SourceException(ctx.getStatementSourceReference(), e, "Value %s is not a valid integer", value);
+ throw new SourceException(ctx, e, "Value %s is not a valid integer", value);
}
}
}
\ No newline at end of file