@Override protected int getOrderForAspectClass(Class<?> aspectClass) { return OrderUtils.getOrder(aspectClass, Ordered.LOWEST_PRECEDENCE); }
/** * This implementation retrieves an @{@link javax.annotation.Priority} * value, allowing for additional semantics over the regular @{@link Order} * annotation: typically, selecting one object over another in case of * multiple matches but only one object to be returned. */ @Override @Nullable public Integer getPriority(Object obj) { if (obj instanceof Class) { return OrderUtils.getPriority((Class<?>) obj); } Integer priority = OrderUtils.getPriority(obj.getClass()); if (priority == null && obj instanceof DecoratingProxy) { priority = OrderUtils.getPriority(((DecoratingProxy) obj).getDecoratedClass()); } return priority; }
/** * This implementation retrieves an @{@link javax.annotation.Priority} * value, allowing for additional semantics over the regular @{@link Order} * annotation: typically, selecting one object over another in case of * multiple matches but only one object to be returned. */ @Override @Nullable public Integer getPriority(Object obj) { if (obj instanceof Class) { return OrderUtils.getPriority((Class<?>) obj); } Integer priority = OrderUtils.getPriority(obj.getClass()); if (priority == null && obj instanceof DecoratingProxy) { priority = OrderUtils.getOrder(((DecoratingProxy) obj).getDecoratedClass()); } return priority; }
Integer order = getOrder(type); return (order != null ? order : defaultOrder); result = getPriority(type);
@Override protected int getOrderForAspectClass(Class<?> aspectClass) { return OrderUtils.getOrder(aspectClass, Ordered.LOWEST_PRECEDENCE); }
/** * This implementation retrieves an @{@link javax.annotation.Priority} * value, allowing for additional semantics over the regular @{@link Order} * annotation: typically, selecting one object over another in case of * multiple matches but only one object to be returned. */ @Override @Nullable public Integer getPriority(Object obj) { if (obj instanceof Class) { return OrderUtils.getPriority((Class<?>) obj); } Integer priority = OrderUtils.getPriority(obj.getClass()); if (priority == null && obj instanceof DecoratingProxy) { priority = OrderUtils.getPriority(((DecoratingProxy) obj).getDecoratedClass()); } return priority; }
/** * Return the order on the specified {@code type}, or the specified * default value if none can be found. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the priority value, or the specified default order if none can be found * @since 5.0 * @see #getPriority(Class) */ public static int getOrder(Class<?> type, int defaultOrder) { Integer order = getOrder(type); return (order != null ? order : defaultOrder); }
/** * Return the order on the specified {@code type}. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the order value, or {@code null} if none can be found * @see #getPriority(Class) */ @Nullable public static Integer getOrder(Class<?> type) { Object cached = orderCache.get(type); if (cached != null) { return (cached instanceof Integer ? (Integer) cached : null); } Order order = AnnotationUtils.findAnnotation(type, Order.class); Integer result; if (order != null) { result = order.value(); } else { result = getPriority(type); } orderCache.put(type, (result != null ? result : NOT_ANNOTATED)); return result; }
private static int initOrderFromBeanType(@Nullable Class<?> beanType) { Integer order = null; if (beanType != null) { order = OrderUtils.getOrder(beanType); } return (order != null ? order : Ordered.LOWEST_PRECEDENCE); }
/** * Return the order on the specified {@code type}. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the order value, or {@code null} if none can be found * @see #getPriority(Class) */ @Nullable public static Integer getOrder(Class<?> type) { Object cached = orderCache.get(type); if (cached != null) { return (cached instanceof Integer ? (Integer) cached : null); } Order order = AnnotationUtils.findAnnotation(type, Order.class); Integer result; if (order != null) { result = order.value(); } else { result = getPriority(type); } orderCache.put(type, (result != null ? result : NOT_ANNOTATED)); return result; }
/** * Return the order on the specified {@code type}, or the specified * default value if none can be found. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the priority value, or the specified default order if none can be found * @see #getPriority(Class) */ @Nullable public static Integer getOrder(Class<?> type, @Nullable Integer defaultOrder) { Integer order = getOrder(type); return (order != null ? order : defaultOrder); }
@Test public void getPriorityValue() { assertEquals(Integer.valueOf(55), OrderUtils.getPriority(OrderAndPriority.class)); assertEquals(Integer.valueOf(55), OrderUtils.getPriority(OrderAndPriority.class)); }
/** * Return the order on the specified {@code type}, or the specified * default value if none can be found. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the priority value, or the specified default order if none can be found * @since 5.0 * @see #getPriority(Class) */ public static int getOrder(Class<?> type, int defaultOrder) { Integer order = getOrder(type); return (order != null ? order : defaultOrder); }
@Test public void getPriorityValueNoAnnotation() { assertNull(OrderUtils.getPriority(SimpleOrder.class)); assertNull(OrderUtils.getPriority(SimpleOrder.class)); }
private static int initOrderFromBeanType(@Nullable Class<?> beanType) { Integer order = null; if (beanType != null) { order = OrderUtils.getOrder(beanType); } return (order != null ? order : Ordered.LOWEST_PRECEDENCE); }
/** * This implementation retrieves an @{@link javax.annotation.Priority} * value, allowing for additional semantics over the regular @{@link Order} * annotation: typically, selecting one object over another in case of * multiple matches but only one object to be returned. */ @Override @Nullable public Integer getPriority(Object obj) { if (obj instanceof Class) { return OrderUtils.getPriority((Class<?>) obj); } Integer priority = OrderUtils.getPriority(obj.getClass()); if (priority == null && obj instanceof DecoratingProxy) { priority = OrderUtils.getPriority(((DecoratingProxy) obj).getDecoratedClass()); } return priority; }
/** * Return the order on the specified {@code type}, or the specified * default value if none can be found. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the priority value, or the specified default order if none can be found * @see #getPriority(Class) */ @Nullable public static Integer getOrder(Class<?> type, @Nullable Integer defaultOrder) { Integer order = getOrder(type); return (order != null ? order : defaultOrder); }
/** * This implementation retrieves an @{@link javax.annotation.Priority} * value, allowing for additional semantics over the regular @{@link Order} * annotation: typically, selecting one object over another in case of * multiple matches but only one object to be returned. */ @Override @Nullable public Integer getPriority(Object obj) { if (obj instanceof Class) { return OrderUtils.getPriority((Class<?>) obj); } Integer priority = OrderUtils.getPriority(obj.getClass()); if (priority == null && obj instanceof DecoratingProxy) { priority = OrderUtils.getPriority(((DecoratingProxy) obj).getDecoratedClass()); } return priority; }
/** * Return the order on the specified {@code type}. * <p>Takes care of {@link Order @Order} and {@code @javax.annotation.Priority}. * @param type the type to handle * @return the order value, or {@code null} if none can be found * @see #getPriority(Class) */ @Nullable public static Integer getOrder(Class<?> type) { Order order = AnnotationUtils.findAnnotation(type, Order.class); if (order != null) { return order.value(); } Integer priorityOrder = getPriority(type); if (priorityOrder != null) { return priorityOrder; } return null; }