public class AnnotationAwareOrderComparator extends OrderComparator
Comparator implementation that checks Spring's
Ordered interface as well as the
Order annotation and the Priority
annotation, with an order value provided by an Ordered
instance overriding a statically defined annotation value (if any).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, withSourceProviderclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic static final AnnotationAwareOrderComparator INSTANCE
protected Integer findOrder(Object obj)
Order annotation
on various kinds of elements, in addition to the
Ordered check in the superclass.findOrder in class OrderComparatorobj - 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 OrderComparatorobj - 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)