org.springframework.util.comparator
Class InvertibleComparator<T>

java.lang.Object
  extended by org.springframework.util.comparator.InvertibleComparator<T>
All Implemented Interfaces:
Serializable, Comparator<T>

public class InvertibleComparator<T>
extends Object
implements Comparator<T>, Serializable

A decorator for a comparator, with an "ascending" flag denoting whether comparison results should be treated in forward (standard ascending) order or flipped for reverse (descending) order.

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

Constructor Summary
InvertibleComparator(Comparator<T> comparator)
          Create an InvertibleComparator that sorts ascending by default.
InvertibleComparator(Comparator<T> comparator, boolean ascending)
          Create an InvertibleComparator that sorts based on the provided order.
 
Method Summary
 int compare(T o1, T o2)
           
 boolean equals(Object obj)
           
 int hashCode()
           
 void invertOrder()
          Invert the sort order: ascending -> descending or descending -> ascending.
 boolean isAscending()
          Return the sort order: ascending (true) or descending (false).
 void setAscending(boolean ascending)
          Specify the sort order: ascending (true) or descending (false).
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InvertibleComparator

public InvertibleComparator(Comparator<T> comparator)
Create an InvertibleComparator that sorts ascending by default. For the actual comparison, the specified Comparator will be used.

Parameters:
comparator - the comparator to decorate

InvertibleComparator

public InvertibleComparator(Comparator<T> comparator,
                            boolean ascending)
Create an InvertibleComparator that sorts based on the provided order. For the actual comparison, the specified Comparator will be used.

Parameters:
comparator - the comparator to decorate
ascending - the sort order: ascending (true) or descending (false)
Method Detail

setAscending

public void setAscending(boolean ascending)
Specify the sort order: ascending (true) or descending (false).


isAscending

public boolean isAscending()
Return the sort order: ascending (true) or descending (false).


invertOrder

public void invertOrder()
Invert the sort order: ascending -> descending or descending -> ascending.


compare

public int compare(T o1,
                   T o2)
Specified by:
compare in interface Comparator<T>

equals

public boolean equals(Object obj)
Specified by:
equals in interface Comparator<T>
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object