groovy.lang

## Class ObjectRange

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList
    - - groovy.lang.ObjectRange

All Implemented Interfaces:
  Range, Iterable, Collection, List

    public class ObjectRange
    extends AbstractList
    implements Range

Represents an inclusive list of objects from a value to a value using comparators.

This class is similar to `IntRange`. If you make any changes to this class, you might consider making parallel changes to `IntRange`.

Version:
  $Revision: 20589 $
Author:
  James Strachan

### Field Summary

### Fields inherited from class java.util.AbstractList

`modCount`

### Constructor Summary

Constructors
Constructor and Description
`ObjectRange(Comparable from, Comparable to)` Creates a new `ObjectRange`.
`ObjectRange(Comparable from, Comparable to, boolean reverse)`

### Method Summary

Methods
`boolean` `contains(Object value)`
`boolean` `containsWithinBounds(Object value)` Checks whether a value is between the from and to values of a Range
`protected Object` `decrement(Object value)` Decrements by one
`boolean` `equals(Object that)`
`boolean` `equals(ObjectRange that)` Compares an `ObjectRange` to another `ObjectRange`.
`Object` `get(int index)`
`Comparable` `getFrom()` The lower value in the range.
`Comparable` `getTo()` The upper value in the range.
`protected Object` `increment(Object value)` Increments by one
`String` `inspect()`
`boolean` `isReverse()` Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value
`Iterator` `iterator()`
`int` `size()`
`List` `step(int step)` Forms a list by stepping through the range by the indicated interval.
`void` `step(int step, Closure closure)` Steps through the range, calling a closure for each number.
`List` `subList(int fromIndex, int toIndex)`
`String` `toString()`

### Methods inherited from class java.util.AbstractList

`add, add, addAll, clear, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, set`

### Methods inherited from class java.util.AbstractCollection

`addAll, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray`

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

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

### Methods inherited from interface java.util.List

`add, add, addAll, addAll, clear, containsAll, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, toArray, toArray`

### Constructor Detail

#### ObjectRange

    public ObjectRange(Comparable from,
               Comparable to)

Creates a new `ObjectRange`. Creates a reversed range if `from` < `to`.

Parameters:
  `from` - the first value in the range.
  `to` - the last value in the range.

#### ObjectRange

    public ObjectRange(Comparable from,
               Comparable to,
               boolean reverse)

### Method Detail

#### equals

    public boolean equals(Object that)

Specified by:
  `equals` in interface `Collection`
Specified by:
  `equals` in interface `List`
Overrides:
  `equals` in class `AbstractList`

#### equals

    public boolean equals(ObjectRange that)

Compares an `ObjectRange` to another `ObjectRange`.

Parameters:
  `that` - the object to check equality with
Returns:
  `true` if the ranges are equal

#### getFrom

    public Comparable getFrom()

The lower value in the range.

Specified by:
  `getFrom` in interface `Range`
Returns:
  the lower value in the range.

#### getTo

    public Comparable getTo()

The upper value in the range.

Specified by:
  `getTo` in interface `Range`
Returns:
  the upper value in the range

#### isReverse

    public boolean isReverse()

Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value

Specified by:
  `isReverse` in interface `Range`
Returns:
  `true` if this is a reverse range

#### get

    public Object get(int index)

Specified by:
  `get` in interface `List`
Specified by:
  `get` in class `AbstractList`

#### iterator

    public Iterator iterator()

Specified by:
  `iterator` in interface `Iterable`
Specified by:
  `iterator` in interface `Collection`
Specified by:
  `iterator` in interface `List`
Overrides:
  `iterator` in class `AbstractList`

#### containsWithinBounds

    public boolean containsWithinBounds(Object value)

Checks whether a value is between the from and to values of a Range

Specified by:
  `containsWithinBounds` in interface `Range`
Parameters:
  `value` - the value of interest
Returns:
  true if the value is within the bounds

#### size

    public int size()

Specified by:
  `size` in interface `Collection`
Specified by:
  `size` in interface `List`
Specified by:
  `size` in class `AbstractCollection`

#### subList

    public List subList(int fromIndex,
               int toIndex)

Specified by:
  `subList` in interface `List`
Overrides:
  `subList` in class `AbstractList`

#### toString

    public String toString()

Overrides:
  `toString` in class `AbstractCollection`

#### inspect

    public String inspect()

Specified by:
  `inspect` in interface `Range`
Returns:
  the verbose `String` representation of this `Range` as would be typed into a console to create the `Range` instance

#### contains

    public boolean contains(Object value)

Specified by:
  `contains` in interface `Collection`
Specified by:
  `contains` in interface `List`
Overrides:
  `contains` in class `AbstractCollection`

#### step

    public void step(int step,
            Closure closure)

Steps through the range, calling a closure for each number.

Specified by:
  `step` in interface `Range`
Parameters:
  `step` - the amount by which to step. If negative, steps through the range backwards.
  `closure` - the `Closure` to call

#### step

    public List step(int step)

Forms a list by stepping through the range by the indicated interval.

Specified by:
  `step` in interface `Range`
Parameters:
  `step` - the amount by which to step. If negative, steps through the range backwards.
Returns:
  the list formed by stepping through the range by the indicated interval.

#### increment

    protected Object increment(Object value)

Increments by one

Parameters:
  `value` - the value to increment
Returns:
  the incremented value

#### decrement

    protected Object decrement(Object value)

Decrements by one

Parameters:
  `value` - the value to decrement
Returns:
  the decremented value