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, 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
protected Integer findOrder(Object obj)
Order
annotation
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)