## org.jfree.data
Class Range

    java.lang.Object
      org.jfree.data.Range

All Implemented Interfaces:
  java.io.Serializable

Direct Known Subclasses:
  DateRange

    public class Range

extends java.lang.Object
implements java.io.Serializable

Represents an immutable range of values.

See Also:
  Serialized Form

Constructor Summary
`Range(double lower, double upper)` Creates a new range.

Method Summary
`static Range` `combine(Range range1, Range range2)` Creates a new range by combining two existing ranges.
`double` `constrain(double value)` Returns the value within the range that is closest to the specified value.
`boolean` `contains(double value)` Returns `true` if the range contains the specified value and `false` otherwise.
`boolean` `equals(java.lang.Object obj)` Tests this object for equality with an arbitrary object.
`static Range` `expand(Range range, double lowerMargin, double upperMargin)` Creates a new range by adding margins to an existing range.
`static Range` `expandToInclude(Range range, double value)` Returns a range that includes all the values in the specified `range` AND the specified `value`.
`double` `getCentralValue()` Returns the central value for the range.
`double` `getLength()` Returns the length of the range.
`double` `getLowerBound()` Returns the lower bound for the range.
`double` `getUpperBound()` Returns the upper bound for the range.
`int` `hashCode()` Returns a hash code.
`boolean` `intersects(double b0, double b1)` Returns `true` if the range intersects with the specified range, and `false` otherwise.
`boolean` `intersects(Range range)` Returns `true` if the range intersects with the specified range, and `false` otherwise.
`static Range` `scale(Range base, double factor)` Scales the range by the specified factor.
`static Range` `shift(Range base, double delta)` Shifts the range by the specified amount.
`static Range` `shift(Range base, double delta, boolean allowZeroCrossing)` Shifts the range by the specified amount.
`java.lang.String` `toString()` Returns a string representation of this Range.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Range

    public Range(double lower,
                 double upper)

  Creates a new range.

  Parameters:
    `lower` - the lower bound (must be <= upper bound).
    `upper` - the upper bound (must be >= lower bound).

Method Detail

### getLowerBound

    public double getLowerBound()

  Returns the lower bound for the range.

  Returns:
    The lower bound.

### getUpperBound

    public double getUpperBound()

  Returns the upper bound for the range.

  Returns:
    The upper bound.

### getLength

    public double getLength()

  Returns the length of the range.

  Returns:
    The length.

### getCentralValue

    public double getCentralValue()

  Returns the central value for the range.

  Returns:
    The central value.

### contains

    public boolean contains(double value)

  Returns `true` if the range contains the specified value and `false` otherwise.

  Parameters:
    `value` - the value to lookup.
  Returns:
    `true` if the range contains the specified value.

### intersects

    public boolean intersects(double b0,
                              double b1)

  Returns `true` if the range intersects with the specified range, and `false` otherwise.

  Parameters:
    `b0` - the lower bound (should be <= b1).
    `b1` - the upper bound (should be >= b0).
  Returns:
    A boolean.

### intersects

    public boolean intersects(Range range)

  Returns `true` if the range intersects with the specified range, and `false` otherwise.

  Parameters:
    `range` - another range (`null` not permitted).
  Returns:
    A boolean.
  Since:
    1.0.9

### constrain

    public double constrain(double value)

  Returns the value within the range that is closest to the specified value.

  Parameters:
    `value` - the value.
  Returns:
    The constrained value.

### combine

    public static Range combine(Range range1,
                                Range range2)

  Creates a new range by combining two existing ranges.

  Note that:

  - either range can be `null`, in which case the other range is returned;
  - if both ranges are `null` the return value is `null`.

  Parameters:
    `range1` - the first range (`null` permitted).
    `range2` - the second range (`null` permitted).
  Returns:
    A new range (possibly `null`).

### expandToInclude

    public static Range expandToInclude(Range range,
                                        double value)

  Returns a range that includes all the values in the specified `range` AND the specified `value`.

  Parameters:
    `range` - the range (`null` permitted).
    `value` - the value that must be included.
  Returns:
    A range.
  Since:
    1.0.1

### expand

    public static Range expand(Range range,
                               double lowerMargin,
                               double upperMargin)

  Creates a new range by adding margins to an existing range.

  Parameters:
    `range` - the range (`null` not permitted).
    `lowerMargin` - the lower margin (expressed as a percentage of the range length).
    `upperMargin` - the upper margin (expressed as a percentage of the range length).
  Returns:
    The expanded range.

### shift

    public static Range shift(Range base,
                              double delta)

  Shifts the range by the specified amount.

  Parameters:
    `base` - the base range (`null` not permitted).
    `delta` - the shift amount.
  Returns:
    A new range.

### shift

    public static Range shift(Range base,
                              double delta,
                              boolean allowZeroCrossing)

  Shifts the range by the specified amount.

  Parameters:
    `base` - the base range (`null` not permitted).
    `delta` - the shift amount.
    `allowZeroCrossing` - a flag that determines whether or not the bounds of the range are allowed to cross zero after adjustment.
  Returns:
    A new range.

### scale

    public static Range scale(Range base,
                              double factor)

  Scales the range by the specified factor.

  Parameters:
    `base` - the base range (`null` not permitted).
    `factor` - the scaling factor (must be non-negative).
  Returns:
    A new range.
  Since:
    1.0.9

### equals

    public boolean equals(java.lang.Object obj)

  Tests this object for equality with an arbitrary object.

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - the object to test against (`null` permitted).
  Returns:
    A boolean.

### hashCode

    public int hashCode()

  Returns a hash code.

  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    A hash code.

### toString

    public java.lang.String toString()

  Returns a string representation of this Range.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    A String "Range[lower,upper]" where lower=lower range and upper=upper range.