Package io.microsphere.util
Class PriorityComparator
- java.lang.Object
-
- io.microsphere.util.PriorityComparator
-
- All Implemented Interfaces:
java.util.Comparator<java.lang.Object>
public class PriorityComparator extends java.lang.Object implements java.util.Comparator<java.lang.Object>AComparatorimplementation that sorts objects based on the value of thePriorityannotation.If an object does not have the
Priorityannotation, it is treated as having a default priority value of -1. If both objects lack the annotation, they are considered equal in priority.Example Usage
List<Object> list = new ArrayList<>(); list.add(new HighPriorityService()); list.add(new LowPriorityService()); Collections.sort(list, PriorityComparator.INSTANCE);Note: The comparison is consistent with equals only if the compared objects are of the same class or both lack the Priority annotation.
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
Priority
-
-
Field Summary
Fields Modifier and Type Field Description static PriorityComparatorINSTANCESingleton instance ofPriorityComparator
-
Constructor Summary
Constructors Constructor Description PriorityComparator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompare(java.lang.Object o1, java.lang.Object o2)Compares two objects based on the value of theirPriorityannotation.
-
-
-
Field Detail
-
INSTANCE
public static final PriorityComparator INSTANCE
Singleton instance ofPriorityComparator
-
-
Method Detail
-
compare
public int compare(java.lang.Object o1, java.lang.Object o2)Compares two objects based on the value of theirPriorityannotation.Example Usage
PriorityComparator comparator = PriorityComparator.INSTANCE; int result = comparator.compare(serviceA, serviceB); if (result < 0) { System.out.println("serviceA has higher priority"); }- Specified by:
comparein interfacejava.util.Comparator<java.lang.Object>- Parameters:
o1- the first object to compareo2- the second object to compare- Returns:
- a negative integer, zero, or a positive integer as the first object's priority is less than, equal to, or greater than the second object's priority
-
-