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

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

public class InvertibleComparator<T>
extends java.lang.Object
implements java.util.Comparator<T>, java.io.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

Field Summary
private  boolean ascending
           
private  java.util.Comparator<T> comparator
           
 
Constructor Summary
InvertibleComparator(java.util.Comparator<T> comparator)
          Create an InvertibleComparator that sorts ascending by default.
InvertibleComparator(java.util.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(java.lang.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).
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

comparator

private final java.util.Comparator<T> comparator

ascending

private boolean ascending
Constructor Detail

InvertibleComparator

public InvertibleComparator(java.util.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(java.util.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 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