private Comparator<Object> serverInterceptorOrderComparator() { Function<Object,Boolean> isOrderAnnotated = obj->{ Order ann = obj instanceof Method ? AnnotationUtils.findAnnotation((Method) obj, Order.class) : AnnotationUtils.findAnnotation(obj.getClass(), Order.class); return ann != null; }; return AnnotationAwareOrderComparator.INSTANCE.thenComparing((o1, o2) -> { boolean p1 = isOrderAnnotated.apply(o1); boolean p2 = isOrderAnnotated.apply(o2); return p1 && !p2 ? -1 : p2 && !p1 ? 1 : 0; }).reversed(); }
private Comparator<Object> serverInterceptorOrderComparator() { Function<Object,Boolean> isOrderAnnotated = obj->{ Order ann = obj instanceof Method ? AnnotationUtils.findAnnotation((Method) obj, Order.class) : AnnotationUtils.findAnnotation(obj.getClass(), Order.class); return ann != null; }; return AnnotationAwareOrderComparator.INSTANCE.thenComparing((o1, o2) -> { boolean p1 = isOrderAnnotated.apply(o1); boolean p2 = isOrderAnnotated.apply(o2); return p1 && !p2 ? -1 : p2 && !p1 ? 1 : 0; }).reversed(); }