Package org.apache.commons.lang.math

## Class NumberRange

- java.lang.Object
- - org.apache.commons.lang.math.Range
  - - org.apache.commons.lang.math.NumberRange

- All Implemented Interfaces:
    `Serializable`

      public final class NumberRange
      extends Range
      implements Serializable

  `NumberRange` represents an inclusive range of `Number` objects of the same type.

  Since:
    2.0 (previously in org.apache.commons.lang)
  Version:
    $Id: NumberRange.java 1057072 2011-01-10 01:55:57Z niallp $
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NumberRange​(Number num)` | Constructs a new `NumberRange` using the specified number as both the minimum and maximum in this range.
    `NumberRange​(Number num1, Number num2)` | Constructs a new `NumberRange` with the specified minimum and maximum numbers (both inclusive).

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `containsNumber​(Number number)` | Tests whether the specified `number` occurs within this range.
    `boolean` | `equals​(Object obj)` | Compares this range to another object to test if they are equal.
    `Number` | `getMaximumNumber()` | Returns the maximum number in this range.
    `Number` | `getMinimumNumber()` | Returns the minimum number in this range.
    `int` | `hashCode()` | Gets a hashCode for the range.
    `String` | `toString()` | Gets the range as a `String`.

    - ### Methods inherited from class org.apache.commons.lang.math.Range

      `containsDouble, containsDouble, containsFloat, containsFloat, containsInteger, containsInteger, containsLong, containsLong, containsRange, getMaximumDouble, getMaximumFloat, getMaximumInteger, getMaximumLong, getMinimumDouble, getMinimumFloat, getMinimumInteger, getMinimumLong, overlapsRange`

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

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

- - ### Constructor Detail

    - #### NumberRange

          public NumberRange​(Number num)

      Constructs a new `NumberRange` using the specified number as both the minimum and maximum in this range.

      Parameters:
        `num` - the number to use for this range
      Throws:
        `IllegalArgumentException` - if the number is `null`
        `IllegalArgumentException` - if the number doesn't implement `Comparable`
        `IllegalArgumentException` - if the number is `Double.NaN` or `Float.NaN`

    - #### NumberRange

          public NumberRange​(Number num1,
                             Number num2)

      Constructs a new `NumberRange` with the specified minimum and maximum numbers (both inclusive).

      The arguments may be passed in the order (min,max) or (max,min). The `getMinimumNumber()` and `getMaximumNumber()` methods will return the correct value.

      This constructor is designed to be used with two `Number` objects of the same type. If two objects of different types are passed in, an exception is thrown.

      Parameters:
        `num1` - first number that defines the edge of the range, inclusive
        `num2` - second number that defines the edge of the range, inclusive
      Throws:
        `IllegalArgumentException` - if either number is `null`
        `IllegalArgumentException` - if the numbers are of different types
        `IllegalArgumentException` - if the numbers don't implement `Comparable`

  - ### Method Detail

    - #### getMinimumNumber

          public Number getMinimumNumber()

      Returns the minimum number in this range.

      Specified by:
        `getMinimumNumber` in class `Range`
      Returns:
        the minimum number in this range

    - #### getMaximumNumber

          public Number getMaximumNumber()

      Returns the maximum number in this range.

      Specified by:
        `getMaximumNumber` in class `Range`
      Returns:
        the maximum number in this range

    - #### containsNumber

          public boolean containsNumber​(Number number)

      Tests whether the specified `number` occurs within this range.

      `null` is handled and returns `false`.

      Specified by:
        `containsNumber` in class `Range`
      Parameters:
        `number` - the number to test, may be `null`
      Returns:
        `true` if the specified number occurs within this range
      Throws:
        `IllegalArgumentException` - if the number is of a different type to the range

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

      Overrides:
        `equals` in class `Range`
      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.

      Overrides:
        `hashCode` in class `Range`
      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]'.

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