Package org.apache.commons.lang.math

## Class Range

- java.lang.Object
- - org.apache.commons.lang.math.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.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `containsDouble​(double value)` | Tests whether the specified `double` occurs within this range using `double` comparison.
    `boolean` | `containsDouble​(Number value)` | Tests whether the specified `Number` occurs within this range using `double` comparison..
    `boolean` | `containsFloat​(float value)` | Tests whether the specified `float` occurs within this range using `float` comparison.
    `boolean` | `containsFloat​(Number value)` | Tests whether the specified `Number` occurs within this range using `float` comparison.
    `boolean` | `containsInteger​(int value)` | Tests whether the specified `int` occurs within this range using `int` comparison.
    `boolean` | `containsInteger​(Number value)` | Tests whether the specified `Number` occurs within this range using `int` comparison..
    `boolean` | `containsLong​(long value)` | Tests whether the specified `long` occurs within this range using `long` comparison.
    `boolean` | `containsLong​(Number value)` | Tests whether the specified `Number` occurs within this range using `long` comparison..
    `abstract boolean` | `containsNumber​(Number number)` | Tests whether the specified `Number` occurs within this range.
    `boolean` | `containsRange​(Range range)` | Tests whether the specified range occurs entirely within this range.
    `boolean` | `equals​(Object obj)` | Compares this range to another object to test if they are equal.
    `double` | `getMaximumDouble()` | Gets the maximum number in this range as a `double`.
    `float` | `getMaximumFloat()` | Gets the maximum number in this range as a `float`.
    `int` | `getMaximumInteger()` | Gets the maximum number in this range as a `int`.
    `long` | `getMaximumLong()` | Gets the maximum number in this range as a `long`.
    `abstract Number` | `getMaximumNumber()` | Gets the maximum number in this range.
    `double` | `getMinimumDouble()` | Gets the minimum number in this range as a `double`.
    `float` | `getMinimumFloat()` | Gets the minimum number in this range as a `float`.
    `int` | `getMinimumInteger()` | Gets the minimum number in this range as a `int`.
    `long` | `getMinimumLong()` | Gets the minimum number in this range as a `long`.
    `abstract Number` | `getMinimumNumber()` | Gets the minimum number in this range.
    `int` | `hashCode()` | Gets a hashCode for the range.
    `boolean` | `overlapsRange​(Range range)` | Tests whether the specified range overlaps with this range.
    `String` | `toString()` | Gets the range as a `String`.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### 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