/** * <p>Tests whether the specified range overlaps with this range * using <code>int</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsInteger(min) || range.containsInteger(max) || containsInteger(range.getMinimumInteger()); }
/** * <p>Tests whether the specified range overlaps with this range * using <code>long</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsLong(min) || range.containsLong(max) || containsLong(range.getMinimumLong()); }
/** * <p>Tests whether the specified range overlaps with this range * using <code>double</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsDouble(min) || range.containsDouble(max) || containsDouble(range.getMinimumDouble()); }
/** * <p>Tests whether the specified <code>long</code> occurs within * this range using <code>long</code> comparison.</p> * * <p>This implementation uses the {@link #getMinimumLong()} and * {@link #getMaximumLong()} methods and should be good for most uses.</p> * * @param value the long to test * @return <code>true</code> if the specified number occurs within this * range by <code>long</code> comparison */ public boolean containsLong(long value) { return value >= getMinimumLong() && value <= getMaximumLong(); }
/** * <p>Tests whether the specified <code>int</code> occurs within * this range using <code>int</code> comparison.</p> * * <p>This implementation uses the {@link #getMinimumInteger()} and * {@link #getMaximumInteger()} methods and should be good for most uses.</p> * * @param value the int to test * @return <code>true</code> if the specified number occurs within this * range by <code>int</code> comparison */ public boolean containsInteger(int value) { return value >= getMinimumInteger() && value <= getMaximumInteger(); }
/** * <p>Tests whether the specified range occurs entirely within this range.</p> * * <p>The exact comparison implementation varies by subclass. It is * intended that an <code>int</code> specific subclass will compare using * <code>int</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation uses the {@link #containsNumber(Number)} method. * Subclasses may be able to optimise this.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range occurs entirely within * this range; otherwise, <code>false</code> * @throws IllegalArgumentException if the <code>Range</code> cannot be compared */ public boolean containsRange(Range range) { if (range == null) { return false; } return containsNumber(range.getMinimumNumber()) && containsNumber(range.getMaximumNumber()); }
/** * <p>Tests whether the specified range overlaps with this range * using <code>float</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsFloat(min) || range.containsFloat(max) || containsFloat(range.getMinimumFloat()); }
/** * <p>Gets a hashCode for the range.</p> * * <p>This implementation uses the {@link #getMinimumNumber()} and * {@link #getMaximumNumber()} methods. * Subclasses may be able to optimise this.</p> * * @return a hash code value for this object */ public int hashCode() { int result = 17; result = 37 * result + getClass().hashCode(); result = 37 * result + getMinimumNumber().hashCode(); result = 37 * result + getMaximumNumber().hashCode(); return result; }
/** * <p>Tests whether the specified <code>Number</code> occurs within * this range using <code>int</code> comparison..</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation forwards to the {@link #containsInteger(int)} method.</p> * * @param value the integer to test, may be <code>null</code> * @return <code>true</code> if the specified number occurs within this * range by <code>int</code> comparison */ public boolean containsInteger(Number value) { if (value == null) { return false; } return containsInteger(value.intValue()); }
/** * <p>Tests whether the specified <code>Number</code> occurs within * this range using <code>long</code> comparison..</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation forwards to the {@link #containsLong(long)} method.</p> * * @param value the long to test, may be <code>null</code> * @return <code>true</code> if the specified number occurs within this * range by <code>long</code> comparison */ public boolean containsLong(Number value) { if (value == null) { return false; } return containsLong(value.longValue()); }
return range.containsLong(value); return range.containsDouble(value.doubleValue()); return range.containsLong(parseLong); return range.containsDouble(parseDouble);
/** * <p>Gets the maximum number in this range as a <code>int</code>.</p> * * <p>This implementation uses the {@link #getMaximumNumber()} method. * Subclasses may be able to optimise this.</p> * * @return the maximum number in this range */ public int getMaximumInteger() { return getMaximumNumber().intValue(); }
/** * <p>Gets the minimum number in this range as a <code>int</code>.</p> * * <p>This implementation uses the {@link #getMinimumNumber()} method. * Subclasses may be able to optimise this.</p> * * @return the minimum number in this range */ public int getMinimumInteger() { return getMinimumNumber().intValue(); }
/** * <p>Tests whether the specified <code>Number</code> occurs within * this range using <code>double</code> comparison..</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation forwards to the {@link #containsDouble(double)} method.</p> * * @param value the double to test, may be <code>null</code> * @return <code>true</code> if the specified number occurs within this * range by <code>double</code> comparison */ public boolean containsDouble(Number value) { if (value == null) { return false; } return containsDouble(value.doubleValue()); }
/** * <p>Tests whether the specified <code>Number</code> occurs within * this range using <code>float</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation forwards to the {@link #containsFloat(float)} method.</p> * * @param value the float to test, may be <code>null</code> * @return <code>true</code> if the specified number occurs within this * range by <code>float</code> comparison */ public boolean containsFloat(Number value) { if (value == null) { return false; } return containsFloat(value.floatValue()); }
/** * <p>Tests whether the specified range occurs entirely within this range * using <code>long</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range occurs entirely within this range * @throws IllegalArgumentException if the range is not of this type */ public boolean containsRange(Range range) { if (range == null) { return false; } return containsLong(range.getMinimumLong()) && containsLong(range.getMaximumLong()); }
/** * <p>Tests whether the specified range occurs entirely within this range * using <code>int</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range occurs entirely within this range * @throws IllegalArgumentException if the range is not of this type */ public boolean containsRange(Range range) { if (range == null) { return false; } return containsInteger(range.getMinimumInteger()) && containsInteger(range.getMaximumInteger()); }
/** * <p>Tests whether the specified range overlaps with this range * using <code>float</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsFloat(min) || range.containsFloat(max) || containsFloat(range.getMinimumFloat()); }
/** * <p>Tests whether the specified range overlaps with this range.</p> * * <p>The exact comparison implementation varies by subclass. It is * intended that an <code>int</code> specific subclass will compare using * <code>int</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * <p>This implementation uses the {@link #containsNumber(Number)} and * {@link #containsRange(Range)} methods. * Subclasses may be able to optimise this.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this * range; otherwise, <code>false</code> * @throws IllegalArgumentException if the <code>Range</code> cannot be compared */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsNumber(getMinimumNumber()) || range.containsNumber(getMaximumNumber()) || containsNumber(range.getMinimumNumber()); }
/** * <p>Compares this range to another object to test if they are equal.</p>. * * <p>To be equal, the class, minimum and maximum must be equal.</p> * * <p>This implementation uses the {@link #getMinimumNumber()} and * {@link #getMaximumNumber()} methods. * Subclasses may be able to optimise this.</p> * * @param obj the reference object with which to compare * @return <code>true</code> if this object is equal */ public boolean equals(Object obj) { if (obj == this) { return true; } else if (obj == null || obj.getClass() != getClass()) { return false; } else { Range range = (Range) obj; return getMinimumNumber().equals(range.getMinimumNumber()) && getMaximumNumber().equals(range.getMaximumNumber()); } }