public class AnnotationAwareOrderComparator extends OrderComparator
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.
OrderComparator.OrderSourceProvider
Modifier and Type | Field and Description |
---|---|
static AnnotationAwareOrderComparator |
INSTANCE
Shared default instance of
AnnotationAwareOrderComparator . |
Constructor and Description |
---|
AnnotationAwareOrderComparator() |
Modifier and Type | Method and Description |
---|---|
protected Integer |
findOrder(Object obj)
|
Integer |
getPriority(Object obj)
|
static void |
sort(List<?> list)
Sort the given List with a default AnnotationAwareOrderComparator.
|
static void |
sort(Object[] array)
Sort the given array with a default AnnotationAwareOrderComparator.
|
static void |
sortIfNecessary(Object value)
Sort the given array or List with a default AnnotationAwareOrderComparator,
if necessary.
|
compare, getOrder, withSourceProvider
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public static final AnnotationAwareOrderComparator INSTANCE
AnnotationAwareOrderComparator
.protected Integer findOrder(Object obj)
@Order
or
@Priority
on various kinds of
elements, in addition to the Ordered
check in the superclass.findOrder
in class OrderComparator
obj
- the object to checknull
if none foundpublic Integer getPriority(Object obj)
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.getPriority
in class OrderComparator
obj
- the object to checknull
if nonepublic static void sort(List<?> list)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
list
- the List to sortCollections.sort(java.util.List, java.util.Comparator)
public static void sort(Object[] array)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
array
- the array to sortArrays.sort(Object[], java.util.Comparator)
public static void sortIfNecessary(Object value)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
value
- the array or List to sortArrays.sort(Object[], java.util.Comparator)