Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.util.comparator
Class CompoundComparator<T>

    java.lang.Object
      org.springframework.util.comparator.CompoundComparator<T>

All Implemented Interfaces:
  java.io.Serializable, java.util.Comparator<T>

    public class CompoundComparator<T>

extends java.lang.Object
implements java.util.Comparator<T>, java.io.Serializable

A comparator that chains a sequence of one or more more Comparators.

A compound comparator calls each Comparator in sequence until a single Comparator returns a non-zero result, or the comparators are exhausted and zero is returned.

This facilitates in-memory sorting similar to multi-column sorting in SQL. The order of any single Comparator in the list can also be reversed.

Since:
  1.2.2
Author:
  Keith Donald, Juergen Hoeller
See Also:
  Serialized Form

Constructor Summary
`CompoundComparator()` Construct a CompoundComparator with initially no Comparators.
`CompoundComparator(java.util.Comparator[] comparators)` Construct a CompoundComparator from the Comparators in the provided array.

Method Summary
`void` | `addComparator(java.util.Comparator<T> comparator)` Add a Comparator to the end of the chain.
`void` | `addComparator(java.util.Comparator<T> comparator, boolean ascending)` Add a Comparator to the end of the chain using the provided sort order.
`int` | `compare(T o1, T o2)`
`boolean` | `equals(java.lang.Object obj)`
`int` | `getComparatorCount()` Returns the number of aggregated comparators.
`int` | `hashCode()`
`void` | `invertOrder()` Invert the sort order of each sort definition contained by this compound comparator.
`void` | `invertOrder(int index)` Invert the sort order of the sort definition at the specified index.
`void` | `setAscendingOrder(int index)` Change the sort order at the given index to ascending.
`void` | `setComparator(int index, java.util.Comparator<T> comparator)` Replace the Comparator at the given index.
`void` | `setComparator(int index, java.util.Comparator<T> comparator, boolean ascending)` Replace the Comparator at the given index using the given sort order.
`void` | `setDescendingOrder(int index)` Change the sort order at the given index to descending sort.
`java.lang.String` | `toString()`

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

Constructor Detail

### CompoundComparator

    public CompoundComparator()

  Construct a CompoundComparator with initially no Comparators. Clients must add at least one Comparator before calling the compare method or an IllegalStateException is thrown.

### CompoundComparator

    public CompoundComparator(java.util.Comparator[] comparators)

  Construct a CompoundComparator from the Comparators in the provided array.

  All Comparators will default to ascending sort order, unless they are InvertibleComparators.

  Parameters:
    `comparators` - the comparators to build into a compound comparator
  See Also:
    `InvertibleComparator`

Method Detail

### addComparator

    public void addComparator(java.util.Comparator<T> comparator)

  Add a Comparator to the end of the chain.

  The Comparator will default to ascending sort order, unless it is a InvertibleComparator.

  Parameters:
    `comparator` - the Comparator to add to the end of the chain
  See Also:
    `InvertibleComparator`

### addComparator

    public void addComparator(java.util.Comparator<T> comparator,
                              boolean ascending)

  Add a Comparator to the end of the chain using the provided sort order.

  Parameters:
    `comparator` - the Comparator to add to the end of the chain
    `ascending` - the sort order: ascending (true) or descending (false)

### setComparator

    public void setComparator(int index,
                              java.util.Comparator<T> comparator)

  Replace the Comparator at the given index.

  The Comparator will default to ascending sort order, unless it is a InvertibleComparator.

  Parameters:
    `index` - the index of the Comparator to replace
    `comparator` - the Comparator to place at the given index
  See Also:
    `InvertibleComparator`

### setComparator

    public void setComparator(int index,
                              java.util.Comparator<T> comparator,
                              boolean ascending)

  Replace the Comparator at the given index using the given sort order.

  Parameters:
    `index` - the index of the Comparator to replace
    `comparator` - the Comparator to place at the given index
    `ascending` - the sort order: ascending (true) or descending (false)

### invertOrder

    public void invertOrder()

  Invert the sort order of each sort definition contained by this compound comparator.

### invertOrder

    public void invertOrder(int index)

  Invert the sort order of the sort definition at the specified index.

  Parameters:
    `index` - the index of the comparator to invert

### setAscendingOrder

    public void setAscendingOrder(int index)

  Change the sort order at the given index to ascending.

  Parameters:
    `index` - the index of the comparator to change

### setDescendingOrder

    public void setDescendingOrder(int index)

  Change the sort order at the given index to descending sort.

  Parameters:
    `index` - the index of the comparator to change

### getComparatorCount

    public int getComparatorCount()

  Returns the number of aggregated comparators.

### compare

    public int compare(T o1,
                       T o2)

  Specified by:
    `compare` in interface `java.util.Comparator<T>`

### equals

    public boolean equals(java.lang.Object obj)

  Specified by:
    `equals` in interface `java.util.Comparator<T>`
  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD