package org.fluentlenium.core.events;
import java.util.Comparator;
/**
* Compare listeners implementing {@link ListenerPriority}.
*/
public class ListenerPriorityComparator implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
int priority1 = getPriority(o1);
int priority2 = getPriority(o2);
return Integer.compare(priority2, priority1);
}
/**
* Get the priority of the object.
*
* @param obj object to get the priority
* @return priority value
*/
protected int getPriority(Object obj) {
if (obj instanceof ListenerPriority) {
return ((ListenerPriority) obj).getPriority();
}
return 0;
}
}