org.apache.commons.collections.comparators
Class NullComparator

java.lang.Object
  |
  +--org.apache.commons.collections.comparators.NullComparator
All Implemented Interfaces:
java.util.Comparator, java.io.Serializable

public class NullComparator
extends java.lang.Object
implements java.util.Comparator, java.io.Serializable

A Comparator that will compare nulls to be either lower or higher than other objects.

Version:
$Id: NullComparator.java,v 1.4.2.1 2004/05/22 12:14:04 scolebourne Exp $
Author:
Michael A. Smith
See Also:
Serialized Form

Constructor Summary
NullComparator()
          Construct an instance that sorts null higher than any non-null object it is compared with.
NullComparator(boolean nullsAreHigh)
          Construct an instance that sorts null higher or lower than any non-null object it is compared with.
NullComparator(java.util.Comparator nonNullComparator)
          Construct an instance that sorts null higher than any non-null object it is compared with.
NullComparator(java.util.Comparator nonNullComparator, boolean nullsAreHigh)
          Cosntruct an instance that sorts null higher or lower than any non-null object it is compared with.
 
Method Summary
 int compare(java.lang.Object o1, java.lang.Object o2)
          Perform a comparison between two objects.
 boolean equals(java.lang.Object obj)
          Determines whether the specified object represents a comparator that is equal to this comparator.
 int hashCode()
          Implement a hash code for this comparator that is consistent with equals(Object).
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NullComparator

public NullComparator()
Construct an instance that sorts null higher than any non-null object it is compared with. When comparing two non-null objects, the ComparableComparator is used.


NullComparator

public NullComparator(java.util.Comparator nonNullComparator)
Construct an instance that sorts null higher than any non-null object it is compared with. When comparing two non-null objects, the specified Comparator is used.

Parameters:
nonNullComparator - the comparator to use when comparing two non-null objects. This argument cannot be null
Throws:
java.lang.NullPointerException - if nonNullComparator is null

NullComparator

public NullComparator(boolean nullsAreHigh)
Construct an instance that sorts null higher or lower than any non-null object it is compared with. When comparing two non-null objects, the ComparableComparator is used.

Parameters:
nullsAreHigh - a true value indicates that null should be compared as higher than a non-null object. A false value indicates that null should be compared as lower than a non-null object.

NullComparator

public NullComparator(java.util.Comparator nonNullComparator,
                      boolean nullsAreHigh)
Cosntruct an instance that sorts null higher or lower than any non-null object it is compared with. When comparing two non-null objects, the specified Comparator is used.

Parameters:
nonNullComparator - the comparator to use when comparing two non-null objects. This argument cannot be null
nullsAreHigh - a true value indicates that null should be compared as higher than a non-null object. A false value indicates that null should be compared as lower than a non-null object.
Throws:
java.lang.NullPointerException - if nonNullComparator is null
Method Detail

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
Perform a comparison between two objects. If both objects are null, a 0 value is returned. If one object is null and the other is not, the result is determined on whether the Comparator was constructed to have nulls as higher or lower than other objects. If neither object is null, an underlying comparator specified in the constructor (or the default) is used to compare the non-null objects.

Specified by:
compare in interface java.util.Comparator
Parameters:
o1 - the first object to compare
o2 - the object to compare it to.
Returns:
-1 if o1 is "lower" than (less than, before, etc.) o2; 1 if o1 is "higher" than (greater than, after, etc.) o2; or 0 if o1 and o2 are equal.

hashCode

public int hashCode()
Implement a hash code for this comparator that is consistent with equals(Object).

Overrides:
hashCode in class java.lang.Object
Returns:
a hash code for this comparator.

equals

public boolean equals(java.lang.Object obj)
Determines whether the specified object represents a comparator that is equal to this comparator.

Specified by:
equals in interface java.util.Comparator
Overrides:
equals in class java.lang.Object
Returns:
true if the specified object is a NullComparator with equivalant null comparison behavior (i.e. null high or low) and with equivalent underlying non-null object comparators.


Copyright © 2001-2004 The Apache Software Foundation. All Rights Reserved.