org.springframework.core
Class OrderComparator

java.lang.Object
  extended by org.springframework.core.OrderComparator
All Implemented Interfaces:
Comparator<Object>
Direct Known Subclasses:
AnnotationAwareOrderComparator

public class OrderComparator
extends Object
implements Comparator<Object>

Comparator implementation for Ordered objects, sorting by order value ascending (resp. by priority descending).

Non-Ordered objects are treated as greatest order values, thus ending up at the end of the list, in arbitrary order (just like same order values of Ordered objects).

Since:
07.04.2003
Author:
Juergen Hoeller
See Also:
Ordered, Collections.sort(java.util.List, java.util.Comparator), Arrays.sort(Object[], java.util.Comparator)

Field Summary
static OrderComparator INSTANCE
          Shared default instance of OrderComparator.
 
Constructor Summary
OrderComparator()
           
 
Method Summary
 int compare(Object o1, Object o2)
           
protected  int getOrder(Object obj)
          Determine the order value for the given object.
static void sort(List<?> list)
          Sort the given List with a default OrderComparator.
static void sort(Object[] array)
          Sort the given array with a default OrderComparator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Field Detail

INSTANCE

public static final OrderComparator INSTANCE
Shared default instance of OrderComparator.

Constructor Detail

OrderComparator

public OrderComparator()
Method Detail

compare

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

getOrder

protected int getOrder(Object obj)
Determine the order value for the given object.

The default implementation checks against the Ordered interface. Can be overridden in subclasses.

Parameters:
obj - the object to check
Returns:
the order value, or Ordered.LOWEST_PRECEDENCE as fallback

sort

public static void sort(List<?> list)
Sort the given List with a default OrderComparator.

Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.

Parameters:
list - the List to sort
See Also:
Collections.sort(java.util.List, java.util.Comparator)

sort

public static void sort(Object[] array)
Sort the given array with a default OrderComparator.

Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.

Parameters:
array - the array to sort
See Also:
Arrays.sort(Object[], java.util.Comparator)