コード例 #1
0
 @Override
 public boolean supportsEventType(ResolvableType eventType) {
   for (ResolvableType declaredEventType : this.declaredEventTypes) {
     if (declaredEventType.isAssignableFrom(eventType)) {
       return true;
     } else if (PayloadApplicationEvent.class.isAssignableFrom(eventType.getRawClass())) {
       ResolvableType payloadType = eventType.as(PayloadApplicationEvent.class).getGeneric();
       if (declaredEventType.isAssignableFrom(payloadType)) {
         return true;
       }
     }
   }
   return eventType.hasUnresolvableGenerics();
 }
コード例 #2
0
 private ResolvableType getResolvableType(ApplicationEvent event) {
   ResolvableType payloadType = null;
   if (event instanceof PayloadApplicationEvent) {
     PayloadApplicationEvent<?> payloadEvent = (PayloadApplicationEvent<?>) event;
     payloadType =
         payloadEvent.getResolvableType().as(PayloadApplicationEvent.class).getGeneric(0);
   }
   for (ResolvableType declaredEventType : this.declaredEventTypes) {
     if (!ApplicationEvent.class.isAssignableFrom(declaredEventType.getRawClass())
         && payloadType != null) {
       if (declaredEventType.isAssignableFrom(payloadType)) {
         return declaredEventType;
       }
     }
     if (declaredEventType.getRawClass().isAssignableFrom(event.getClass())) {
       return declaredEventType;
     }
   }
   return null;
 }