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

Constructors
Constructor and Description
`Range(double lower, double upper)` Creates a new range.

### Method Summary

Methods
`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.