in event/src/main/java/org/apache/shiro/event/support/EventListenerComparator.java [42:71]
public int compare(EventListener a, EventListener b) {
if (a == null) {
if (b == null) {
return 0;
} else {
return -1;
}
} else if (b == null) {
return 1;
} else if (a == b || a.equals(b)) {
return 0;
} else {
if (a instanceof TypedEventListener) {
TypedEventListener ta = (TypedEventListener) a;
if (b instanceof TypedEventListener) {
TypedEventListener tb = (TypedEventListener) b;
return EVENT_CLASS_COMPARATOR.compare(ta.getEventType(), tb.getEventType());
} else {
//TypedEventListeners are 'less than' (higher priority) than non typed
return -1;
}
} else {
if (b instanceof TypedEventListener) {
return 1;
} else {
return 0;
}
}
}
}