@SuppressWarnings({ "unchecked", "rawtypes" }) private static <T extends Comparable<T>> io.smartcat.ranger.core.Range<T> toRange(Range range) { return new io.smartcat.ranger.core.Range<>((T) range.beginning, (T) range.end); }
@SuppressWarnings({ "unchecked", "rawtypes" }) private static <T extends Comparable<T>> io.smartcat.ranger.core.Range<T> toRange(Range range) { return new io.smartcat.ranger.core.Range<>((T) range.beginning, (T) range.end); }
/** * Creates appropriate number range depending on number types. * * @param beginning Beginning of the range. * @param end End of the range. * @return An instance of {@link Range}. */ protected Range<?> createNumberRange(Number beginning, Number end) { if (beginning instanceof Double || end instanceof Double) { return new Range<Double>(beginning.doubleValue(), end.doubleValue()); } if (beginning instanceof Float || end instanceof Float) { return new Range<Float>(beginning.floatValue(), end.floatValue()); } if (beginning instanceof Long || end instanceof Long) { return new Range<Long>(beginning.longValue(), end.longValue()); } if (beginning instanceof Integer || end instanceof Integer) { return new Range<Integer>(beginning.intValue(), end.intValue()); } if (beginning instanceof Short || end instanceof Short) { return new Range<Short>(beginning.shortValue(), end.shortValue()); } if (beginning instanceof Byte || end instanceof Byte) { return new Range<Byte>(beginning.byteValue(), end.byteValue()); } throw new RuntimeException("Unsupported number type: " + beginning.getClass().getName()); }
/** * Creates appropriate number range depending on number types. * * @param beginning Beginning of the range. * @param end End of the range. * @return An instance of {@link Range}. */ protected Range<?> createNumberRange(Number beginning, Number end) { if (beginning instanceof Double || end instanceof Double) { return new Range<Double>(beginning.doubleValue(), end.doubleValue()); } if (beginning instanceof Float || end instanceof Float) { return new Range<Float>(beginning.floatValue(), end.floatValue()); } if (beginning instanceof Long || end instanceof Long) { return new Range<Long>(beginning.longValue(), end.longValue()); } if (beginning instanceof Integer || end instanceof Integer) { return new Range<Integer>(beginning.intValue(), end.intValue()); } if (beginning instanceof Short || end instanceof Short) { return new Range<Short>(beginning.shortValue(), end.shortValue()); } if (beginning instanceof Byte || end instanceof Byte) { return new Range<Byte>(beginning.byteValue(), end.byteValue()); } throw new RuntimeException("Unsupported number type: " + beginning.getClass().getName()); }
/** * Character range definition. * * @return Character range definition rule. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Rule charRange() { return Sequence(Sequence(charLiteral(), "..", charLiteral()), push(new Range((Character) pop(1), (Character) pop()))); }
/** * Character range definition. * * @return Character range definition rule. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Rule charRange() { return Sequence(Sequence(charLiteral(), "..", charLiteral()), push(new Range((Character) pop(1), (Character) pop()))); }