Package groovy.util

# Class OrderBy<T>

java.lang.Object
groovy.util.OrderBy<T>

All Implemented Interfaces:
  `Serializable`, `Comparator<T>`

public class OrderBy<T> extends Object implements Comparator<T>, Serializable
A helper class for sorting objects via a closure to return the field or operation on which to sort.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OrderBy()`
  Creates an ordering with no comparison closures.
  `OrderBy(boolean equalityCheck)`
  Creates an ordering with no comparison closures.
  `OrderBy(Closure closure)`
  Creates an ordering using a single comparison closure.
  `OrderBy(Closure closure, boolean equalityCheck)`
  Creates an ordering using a single comparison closure.
  `OrderBy(List<Closure> closures)`
  Creates an ordering using the supplied comparison closures.
  `OrderBy(List<Closure> closures, boolean equalityCheck)`
  Creates an ordering using the supplied comparison closures.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(Closure closure)`
  Adds a comparison closure evaluated after any existing closures.
  `int`
  `compare(T object1, T object2)`
  `boolean`
  `isEqualityCheck()`
  Indicates whether equality-only comparison is enabled for non-comparable values.
  `void`
  `setEqualityCheck(boolean equalityCheck)`
  Enables or disables equality-only comparison for non-comparable values.

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

  `equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- ## Constructor Details

  - ### OrderBy

    public OrderBy()
    Creates an ordering with no comparison closures.

  - ### OrderBy

    public OrderBy(boolean equalityCheck)
    Creates an ordering with no comparison closures.
    Parameters:
      `equalityCheck` - whether equality-only comparison should be used for non-comparable values

  - ### OrderBy

    public OrderBy(Closure closure)
    Creates an ordering using a single comparison closure.
    Parameters:
      `closure` - the comparison closure

  - ### OrderBy

    public OrderBy(Closure closure, boolean equalityCheck)
    Creates an ordering using a single comparison closure.
    Parameters:
      `closure` - the comparison closure
      `equalityCheck` - whether equality-only comparison should be used for non-comparable values

  - ### OrderBy

    public OrderBy(List<Closure> closures)
    Creates an ordering using the supplied comparison closures.
    Parameters:
      `closures` - the comparison closures

  - ### OrderBy

    public OrderBy(List<Closure> closures, boolean equalityCheck)
    Creates an ordering using the supplied comparison closures.
    Parameters:
      `closures` - the comparison closures
      `equalityCheck` - whether equality-only comparison should be used for non-comparable values

- ## Method Details

  - ### add

    public void add(Closure closure)
    Adds a comparison closure evaluated after any existing closures.
    Parameters:
      `closure` - the comparison closure to add

  - ### compare

    public int compare(T object1, T object2)
    Specified by:
      `compare` in interface `Comparator<T>`

  - ### isEqualityCheck

    public boolean isEqualityCheck()
    Indicates whether equality-only comparison is enabled for non-comparable values.
    Returns:
      `true` if equality-only comparison is enabled

  - ### setEqualityCheck

    public void setEqualityCheck(boolean equalityCheck)
    Enables or disables equality-only comparison for non-comparable values.
    Parameters:
      `equalityCheck` - `true` to enable equality-only comparison