Class AnnotationAwareOrderComparator
java.lang.Object
org.springframework.core.OrderComparator
org.springframework.core.annotation.AnnotationAwareOrderComparator
- All Implemented Interfaces:
Comparator<Object>
AnnotationAwareOrderComparator
is an extension of
OrderComparator
that supports Spring's
Ordered
interface as well as the
@Order
and @Priority
annotations, with an order value provided by an Ordered
instance overriding a statically defined annotation value (if any).
Consult the Javadoc for OrderComparator
for details on the
sort semantics for non-ordered objects.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.OrderComparator
OrderComparator.OrderSourceProvider
-
Field Summary
Modifier and TypeFieldDescriptionstatic final AnnotationAwareOrderComparator
Shared default instance ofAnnotationAwareOrderComparator
. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Integer
getPriority
(Object obj) static void
Sort the given array with a default AnnotationAwareOrderComparator.static void
Sort the given list with a defaultAnnotationAwareOrderComparator
.static void
sortIfNecessary
(Object value) Sort the given array or List with a default AnnotationAwareOrderComparator, if necessary.Methods inherited from class org.springframework.core.OrderComparator
compare, getOrder, withSourceProvider
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, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
INSTANCE
Shared default instance ofAnnotationAwareOrderComparator
.
-
-
Constructor Details
-
AnnotationAwareOrderComparator
public AnnotationAwareOrderComparator()
-
-
Method Details
-
findOrder
This implementation checks for@Order
or@Priority
on various kinds of elements, in addition to theOrdered
check in the superclass.- Overrides:
findOrder
in classOrderComparator
- Parameters:
obj
- the object to check- Returns:
- the order value, or
null
if none found
-
getPriority
This implementation retrieves an @Priority
value, allowing for additional semantics over the regular @Order
annotation: typically, selecting one object over another in case of multiple matches but only one object to be returned.- Overrides:
getPriority
in classOrderComparator
- Parameters:
obj
- the object to check- Returns:
- the priority value, or
null
if none
-
sort
Sort the given list with a defaultAnnotationAwareOrderComparator
.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:
-
sort
Sort the given array with a default AnnotationAwareOrderComparator.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:
-
sortIfNecessary
Sort the given array or List with a default AnnotationAwareOrderComparator, 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:
-