groovy.lang

## Class ObjectRange

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

- All Implemented Interfaces:
    Range, java.lang.Iterable, java.util.Collection, java.util.List

      public class ObjectRange
      extends java.util.AbstractList
      implements Range

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

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

- - ### Field Summary

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

      `modCount`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `contains(java.lang.Object value)` iterates over all values and returns true if one value matches.
    `boolean` | `containsWithinBounds(java.lang.Object value)` Checks whether a value is between the from and to values of a Range
    `protected java.lang.Object` | `decrement(java.lang.Object value)` Decrements by one
    `boolean` | `equals(java.lang.Object that)`
    `boolean` | `equals(ObjectRange that)` Compares an `ObjectRange` to another `ObjectRange`.
    `java.lang.Object` | `get(int index)`
    `java.lang.Comparable` | `getFrom()` The lower value in the range.
    `java.lang.Comparable` | `getTo()` The upper value in the range.
    `protected java.lang.Object` | `increment(java.lang.Object value)` Increments by one
    `java.lang.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
    `java.util.Iterator` | `iterator()`
    `int` | `size()`
    `java.util.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.
    `java.util.List` | `subList(int fromIndex, int toIndex)`
    `java.lang.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, replaceAll, retainAll, set, sort, spliterator, toArray, toArray`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Constructor Detail

    - #### ObjectRange

          public ObjectRange(java.lang.Comparable from,
                             java.lang.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(java.lang.Comparable from,
                             java.lang.Comparable to,
                             boolean reverse)

  - ### Method Detail

    - #### equals

          public boolean equals(java.lang.Object that)

      Specified by:
        `equals` in interface `java.util.Collection`
      Specified by:
        `equals` in interface `java.util.List`
      Overrides:
        `equals` in class `java.util.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 java.lang.Comparable getFrom()

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

    - #### getTo

          public java.lang.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 java.lang.Object get(int index)

      Specified by:
        `get` in interface `java.util.List`
      Specified by:
        `get` in class `java.util.AbstractList`

    - #### iterator

          public java.util.Iterator iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable`
      Specified by:
        `iterator` in interface `java.util.Collection`
      Specified by:
        `iterator` in interface `java.util.List`
      Overrides:
        `iterator` in class `java.util.AbstractList`

    - #### containsWithinBounds

          public boolean containsWithinBounds(java.lang.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 `java.util.Collection`
      Specified by:
        `size` in interface `java.util.List`
      Specified by:
        `size` in class `java.util.AbstractCollection`

    - #### subList

          public java.util.List subList(int fromIndex,
                                        int toIndex)

      Specified by:
        `subList` in interface `java.util.List`
      Overrides:
        `subList` in class `java.util.AbstractList`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.util.AbstractCollection`

    - #### inspect

          public java.lang.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(java.lang.Object value)

      iterates over all values and returns true if one value matches. Also see containsWithinBounds.
      Specified by:
        `contains` in interface `java.util.Collection`
      Specified by:
        `contains` in interface `java.util.List`
      Overrides:
        `contains` in class `java.util.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 java.util.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 java.lang.Object increment(java.lang.Object value)

      Increments by one
      Parameters:
        `value` - the value to increment
      Returns:
        the incremented value

    - #### decrement

          protected java.lang.Object decrement(java.lang.Object value)

      Decrements by one
      Parameters:
        `value` - the value to decrement
      Returns:
        the decremented value