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

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

public class NullSafeComparator<T>
extends Object
implements Comparator<T>

A Comparator that will safely compare nulls to be lower or higher than other objects. Can decorate a given Comparator or work on Comparables.

Since:
1.2.2
Author:
Keith Donald, Juergen Hoeller
See Also:
Comparable

Field Summary
static NullSafeComparator NULLS_HIGH
          A shared default instance of this comparator, treating nulls higher than non-null objects.
static NullSafeComparator NULLS_LOW
          A shared default instance of this comparator, treating nulls lower than non-null objects.
 
Constructor Summary
NullSafeComparator(Comparator<T> comparator, boolean nullsLow)
          Create a NullSafeComparator that sorts null based on the provided flag, decorating the given Comparator.
 
Method Summary
 int compare(T o1, T o2)
           
 boolean equals(Object obj)
           
 int hashCode()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NULLS_LOW

public static final NullSafeComparator NULLS_LOW
A shared default instance of this comparator, treating nulls lower than non-null objects.


NULLS_HIGH

public static final NullSafeComparator NULLS_HIGH
A shared default instance of this comparator, treating nulls higher than non-null objects.

Constructor Detail

NullSafeComparator

public NullSafeComparator(Comparator<T> comparator,
                          boolean nullsLow)
Create a NullSafeComparator that sorts null based on the provided flag, decorating the given Comparator.

When comparing two non-null objects, the specified Comparator will be used. The given underlying Comparator must be able to handle the elements that this Comparator will be applied to.

Parameters:
comparator - the comparator to use when comparing two non-null objects
nullsLow - whether to treat nulls lower or higher than non-null objects
Method Detail

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