org.apache.commons.collections
Class ComparatorUtils

java.lang.Object
  |
  +--org.apache.commons.collections.ComparatorUtils

public class ComparatorUtils
extends java.lang.Object

Provides convenient static utility methods for Comparator objects.

Most of the utility in this class can also be found in the comparators package. This class merely provides a convenient central place if you have use for more than one class in the comparators subpackage.

Note that every method in this class allows you to specify null instead of a comparator, in which case NATURAL_COMPARATOR will be used.

Since:
2.1
Version:
$Id: $
Author:
Paul Jack, Stephen Colebourne

Field Summary
static java.util.Comparator NATURAL_COMPARATOR
          Comparator for natural sort order.
 
Method Summary
static java.util.Comparator chainedComparator(java.util.Collection comparators)
          Gets a comparator that compares using a collection of Comparators.
static java.util.Comparator chainedComparator(java.util.Comparator[] comparators)
          Gets a comparator that compares using an array of Comparators.
static java.util.Comparator chainedComparator(java.util.Comparator comparator1, java.util.Comparator comparator2)
          Gets a comparator that compares using two Comparators.
static java.lang.Object max(java.lang.Object o1, java.lang.Object o2, java.util.Comparator comparator)
          Returns the smaller of the given objects according to the given comparator.
static java.lang.Object min(java.lang.Object o1, java.lang.Object o2, java.util.Comparator comparator)
          Returns the smaller of the given objects according to the given comparator.
static java.util.Comparator naturalComparator()
          Gets a comparator that uses the natural order of the objects.
static java.util.Comparator nullHighComparator(java.util.Comparator comparator)
          Gets a Comparator that controls the comparison of null values.
static java.util.Comparator nullLowComparator(java.util.Comparator comparator)
          Gets a Comparator that controls the comparison of null values.
static java.util.Comparator reversedComparator(java.util.Comparator comparator)
          Gets a comparator that reverses the order of the given comparator.
static java.util.Comparator transformedComparator(java.util.Comparator comparator, Transformer transformer)
          Gets a Comparator that passes transformed objects to the given comparator.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NATURAL_COMPARATOR

public static final java.util.Comparator NATURAL_COMPARATOR
Comparator for natural sort order.

See Also:
ComparableComparator.getInstance()
Method Detail

naturalComparator

public static java.util.Comparator naturalComparator()
Gets a comparator that uses the natural order of the objects.

Returns:
a comparator which uses natural order

chainedComparator

public static java.util.Comparator chainedComparator(java.util.Comparator comparator1,
                                                     java.util.Comparator comparator2)
Gets a comparator that compares using two Comparators.

The second comparator is used if the first comparator returns that equal.

Parameters:
comparator1 - the first comparator to use, not null
comparator2 - the first comparator to use, not null
Returns:
a combination comparator over the comparators
Throws:
java.lang.NullPointerException - if either comparator is null

chainedComparator

public static java.util.Comparator chainedComparator(java.util.Comparator[] comparators)
Gets a comparator that compares using an array of Comparators.

The second comparator is used if the first comparator returns that equal and so on.

Returns:
a combination comparator over the comparators
Throws:
java.lang.NullPointerException - if comparators array is null or contains a null

chainedComparator

public static java.util.Comparator chainedComparator(java.util.Collection comparators)
Gets a comparator that compares using a collection of Comparators.

The second comparator is used if the first comparator returns that equal and so on.

Parameters:
comparators - the comparators to use, not null or empty or contain nulls
Returns:
a combination comparator over the comparators
Throws:
java.lang.NullPointerException - if comparators collection is null or contains a null
java.lang.ClassCastException - if the comparators collection contains the wrong object type

reversedComparator

public static java.util.Comparator reversedComparator(java.util.Comparator comparator)
Gets a comparator that reverses the order of the given comparator.

Parameters:
comparator - the comparator whose order to reverse
Returns:
a comparator who reverses that order
See Also:
ReverseComparator

nullLowComparator

public static java.util.Comparator nullLowComparator(java.util.Comparator comparator)
Gets a Comparator that controls the comparison of null values.

The returned comparator will consider a null value to be less than any nonnull value, and equal to any other null value. Two nonnull values will be evaluated with the given comparator.

Parameters:
comparator - the comparator that wants to allow nulls
Returns:
a version of that comparator that allows nulls
See Also:
NullComparator

nullHighComparator

public static java.util.Comparator nullHighComparator(java.util.Comparator comparator)
Gets a Comparator that controls the comparison of null values.

The returned comparator will consider a null value to be greater than any nonnull value, and equal to any other null value. Two nonnull values will be evaluated with the given comparator.

Parameters:
comparator - the comparator that wants to allow nulls
Returns:
a version of that comparator that allows nulls
See Also:
NullComparator

transformedComparator

public static java.util.Comparator transformedComparator(java.util.Comparator comparator,
                                                         Transformer transformer)
Gets a Comparator that passes transformed objects to the given comparator.

Objects passed to the returned comparator will first be transformed by the given transformer before they are compared by the given comparator.

Parameters:
comparator - the sort order to use
transformer - the transformer to use
Returns:
a comparator that transforms its input objects before comparing them
See Also:
TransformingComparator

min

public static java.lang.Object min(java.lang.Object o1,
                                   java.lang.Object o2,
                                   java.util.Comparator comparator)
Returns the smaller of the given objects according to the given comparator.

Parameters:
o1 - the first object to compare
o2 - the second object to compare
comparator - the sort order to use
Returns:
the smaller of the two objects

max

public static java.lang.Object max(java.lang.Object o1,
                                   java.lang.Object o2,
                                   java.util.Comparator comparator)
Returns the smaller of the given objects according to the given comparator.

Parameters:
o1 - the first object to compare
o2 - the second object to compare
comparator - the sort order to use
Returns:
the smaller of the two objects


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