Class OrderComparator
- All Implemented Interfaces:
- Comparator<Object>
- Direct Known Subclasses:
- AnnotationAwareOrderComparator
Comparator implementation for Ordered objects, sorting
 by order value ascending, respectively by priority descending.
 PriorityOrdered Objects
 PriorityOrdered objects will be sorted with higher priority than
 plain Ordered objects.
 
Same Order Objects
Objects that have the same order value will be sorted with arbitrary ordering with respect to other objects with the same order value.
Non-ordered Objects
Any object that does not provide its own order value is implicitly
 assigned a value of Ordered.LOWEST_PRECEDENCE, thus ending up
 at the end of a sorted collection in arbitrary order with respect to
 other objects with the same order value.
- Since:
- 07.04.2003
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic interfaceStrategy interface to provide an order source for a given object.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final OrderComparatorShared default instance ofOrderComparator.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionintprotected IntegerFind an order value indicated by the given object.protected intDetermine the order value for the given object.getPriority(Object obj) Determine a priority value for the given object, if any.static voidSort the given array with a default OrderComparator.static voidSort the given List with a default OrderComparator.static voidsortIfNecessary(Object value) Sort the given array or List with a default OrderComparator, if necessary.withSourceProvider(OrderComparator.OrderSourceProvider sourceProvider) Build an adapted order comparator with the given source provider.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparatorequals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
- 
Field Details- 
INSTANCEShared default instance ofOrderComparator.
 
- 
- 
Constructor Details- 
OrderComparatorpublic OrderComparator()
 
- 
- 
Method Details- 
withSourceProviderBuild an adapted order comparator with the given source provider.- Parameters:
- sourceProvider- the order source provider to use
- Returns:
- the adapted comparator
- Since:
- 4.1
 
- 
compare- Specified by:
- comparein interface- Comparator<Object>
 
- 
getOrderDetermine the order value for the given object.The default implementation checks against the Orderedinterface through delegating tofindOrder(java.lang.Object). Can be overridden in subclasses.- Parameters:
- obj- the object to check
- Returns:
- the order value, or Ordered.LOWEST_PRECEDENCEas fallback
 
- 
findOrderFind an order value indicated by the given object.The default implementation checks against the Orderedinterface. Can be overridden in subclasses.- Parameters:
- obj- the object to check
- Returns:
- the order value, or nullif none found
 
- 
getPriorityDetermine a priority value for the given object, if any.The default implementation always returns null. Subclasses may override this to give specific kinds of values a 'priority' characteristic, in addition to their 'order' semantics. A priority indicates that it may be used for selecting one object over another, in addition to serving for ordering purposes in a list/array.- Parameters:
- obj- the object to check
- Returns:
- the priority value, or nullif none
- Since:
- 4.1
 
- 
sortSort 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:
 
- 
sortSort 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:
 
- 
sortIfNecessarySort the given array or List with a default OrderComparator, if necessary. Simply skips sorting when given any other value.Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction. - Parameters:
- value- the array or List to sort
- See Also:
 
 
-