Example usage for org.springframework.context PayloadApplicationEvent getResolvableType

List of usage examples for org.springframework.context PayloadApplicationEvent getResolvableType

Introduction

In this page you can find the example usage for org.springframework.context PayloadApplicationEvent getResolvableType.

Prototype

@Override
    public ResolvableType getResolvableType() 

Source Link

Usage

From source file:org.springframework.context.event.ApplicationListenerMethodAdapter.java

@Nullable
private ResolvableType getResolvableType(ApplicationEvent event) {
    ResolvableType payloadType = null;/* w  w w  .jav  a 2s  . co m*/
    if (event instanceof PayloadApplicationEvent) {
        PayloadApplicationEvent<?> payloadEvent = (PayloadApplicationEvent<?>) event;
        ResolvableType eventType = payloadEvent.getResolvableType();
        if (eventType != null) {
            payloadType = eventType.as(PayloadApplicationEvent.class).getGeneric();
        }
    }
    for (ResolvableType declaredEventType : this.declaredEventTypes) {
        Class<?> eventClass = declaredEventType.getRawClass();
        if ((eventClass == null || !ApplicationEvent.class.isAssignableFrom(eventClass))
                && payloadType != null) {
            if (declaredEventType.isAssignableFrom(payloadType)) {
                return declaredEventType;
            }
        }
        if (declaredEventType.getRawClass().isInstance(event)) {
            return declaredEventType;
        }
    }
    return null;
}