Class Range

  • Direct Known Subclasses:
    DoubleRange, FloatRange, IntRange, LongRange, NumberRange

    public abstract class Range
    extends Object

    Range represents a range of numbers of the same type.

    Specific subclasses hold the range values as different types. Each subclass should be immutable and Serializable if possible.

    Since:
    2.0
    Version:
    $Id: Range.java 1057072 2011-01-10 01:55:57Z niallp $
    • Constructor Summary

      Constructors 
      Constructor Description
      Range()
      Constructs a new range.
    • Constructor Detail

      • Range

        public Range()

        Constructs a new range.

    • Method Detail

      • getMinimumNumber

        public abstract Number getMinimumNumber()

        Gets the minimum number in this range.

        Returns:
        the minimum number in this range
      • getMinimumLong

        public long getMinimumLong()

        Gets the minimum number in this range as a long.

        This implementation uses the getMinimumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the minimum number in this range
      • getMinimumInteger

        public int getMinimumInteger()

        Gets the minimum number in this range as a int.

        This implementation uses the getMinimumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the minimum number in this range
      • getMinimumDouble

        public double getMinimumDouble()

        Gets the minimum number in this range as a double.

        This implementation uses the getMinimumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the minimum number in this range
      • getMinimumFloat

        public float getMinimumFloat()

        Gets the minimum number in this range as a float.

        This implementation uses the getMinimumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the minimum number in this range
      • getMaximumNumber

        public abstract Number getMaximumNumber()

        Gets the maximum number in this range.

        Returns:
        the maximum number in this range
      • getMaximumLong

        public long getMaximumLong()

        Gets the maximum number in this range as a long.

        This implementation uses the getMaximumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the maximum number in this range
      • getMaximumInteger

        public int getMaximumInteger()

        Gets the maximum number in this range as a int.

        This implementation uses the getMaximumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the maximum number in this range
      • getMaximumDouble

        public double getMaximumDouble()

        Gets the maximum number in this range as a double.

        This implementation uses the getMaximumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the maximum number in this range
      • getMaximumFloat

        public float getMaximumFloat()

        Gets the maximum number in this range as a float.

        This implementation uses the getMaximumNumber() method. Subclasses may be able to optimise this.

        Returns:
        the maximum number in this range
      • containsNumber

        public abstract boolean containsNumber​(Number number)

        Tests whether the specified Number occurs within this range.

        The exact comparison implementation varies by subclass. It is intended that an int specific subclass will compare using int comparison.

        null is handled and returns false.

        Parameters:
        number - the number to test, may be null
        Returns:
        true if the specified number occurs within this range
        Throws:
        IllegalArgumentException - if the Number cannot be compared
      • containsLong

        public boolean containsLong​(Number value)

        Tests whether the specified Number occurs within this range using long comparison..

        null is handled and returns false.

        This implementation forwards to the containsLong(long) method.

        Parameters:
        value - the long to test, may be null
        Returns:
        true if the specified number occurs within this range by long comparison
      • containsLong

        public boolean containsLong​(long value)

        Tests whether the specified long occurs within this range using long comparison.

        This implementation uses the getMinimumLong() and getMaximumLong() methods and should be good for most uses.

        Parameters:
        value - the long to test
        Returns:
        true if the specified number occurs within this range by long comparison
      • containsInteger

        public boolean containsInteger​(Number value)

        Tests whether the specified Number occurs within this range using int comparison..

        null is handled and returns false.

        This implementation forwards to the containsInteger(int) method.

        Parameters:
        value - the integer to test, may be null
        Returns:
        true if the specified number occurs within this range by int comparison
      • containsInteger

        public boolean containsInteger​(int value)

        Tests whether the specified int occurs within this range using int comparison.

        This implementation uses the getMinimumInteger() and getMaximumInteger() methods and should be good for most uses.

        Parameters:
        value - the int to test
        Returns:
        true if the specified number occurs within this range by int comparison
      • containsDouble

        public boolean containsDouble​(Number value)

        Tests whether the specified Number occurs within this range using double comparison..

        null is handled and returns false.

        This implementation forwards to the containsDouble(double) method.

        Parameters:
        value - the double to test, may be null
        Returns:
        true if the specified number occurs within this range by double comparison
      • containsDouble

        public boolean containsDouble​(double value)

        Tests whether the specified double occurs within this range using double comparison.

        This implementation uses the getMinimumDouble() and getMaximumDouble() methods and should be good for most uses.

        Parameters:
        value - the double to test
        Returns:
        true if the specified number occurs within this range by double comparison
      • containsFloat

        public boolean containsFloat​(Number value)

        Tests whether the specified Number occurs within this range using float comparison.

        null is handled and returns false.

        This implementation forwards to the containsFloat(float) method.

        Parameters:
        value - the float to test, may be null
        Returns:
        true if the specified number occurs within this range by float comparison
      • containsFloat

        public boolean containsFloat​(float value)

        Tests whether the specified float occurs within this range using float comparison.

        This implementation uses the getMinimumFloat() and getMaximumFloat() methods and should be good for most uses.

        Parameters:
        value - the float to test
        Returns:
        true if the specified number occurs within this range by float comparison
      • containsRange

        public boolean containsRange​(Range range)

        Tests whether the specified range occurs entirely within this range.

        The exact comparison implementation varies by subclass. It is intended that an int specific subclass will compare using int comparison.

        null is handled and returns false.

        This implementation uses the containsNumber(Number) method. Subclasses may be able to optimise this.

        Parameters:
        range - the range to test, may be null
        Returns:
        true if the specified range occurs entirely within this range; otherwise, false
        Throws:
        IllegalArgumentException - if the Range cannot be compared
      • overlapsRange

        public boolean overlapsRange​(Range range)

        Tests whether the specified range overlaps with this range.

        The exact comparison implementation varies by subclass. It is intended that an int specific subclass will compare using int comparison.

        null is handled and returns false.

        This implementation uses the containsNumber(Number) and containsRange(Range) methods. Subclasses may be able to optimise this.

        Parameters:
        range - the range to test, may be null
        Returns:
        true if the specified range overlaps with this range; otherwise, false
        Throws:
        IllegalArgumentException - if the Range cannot be compared
      • equals

        public boolean equals​(Object obj)

        Compares this range to another object to test if they are equal.

        .

        To be equal, the class, minimum and maximum must be equal.

        This implementation uses the getMinimumNumber() and getMaximumNumber() methods. Subclasses may be able to optimise this.

        Overrides:
        equals in class Object
        Parameters:
        obj - the reference object with which to compare
        Returns:
        true if this object is equal
      • hashCode

        public int hashCode()

        Gets a hashCode for the range.

        This implementation uses the getMinimumNumber() and getMaximumNumber() methods. Subclasses may be able to optimise this.

        Overrides:
        hashCode in class Object
        Returns:
        a hash code value for this object
      • toString

        public String toString()

        Gets the range as a String.

        The format of the String is 'Range[min,max]'.

        This implementation uses the getMinimumNumber() and getMaximumNumber() methods. Subclasses may be able to optimise this.

        Overrides:
        toString in class Object
        Returns:
        the String representation of this range