Expose public shouldHandle(ApplicationEvent) method
Closes gh-31295
This commit is contained in:
parent
38a0e17ede
commit
86b764d4d2
|
|
@ -219,13 +219,14 @@ public class ApplicationListenerMethodAdapter implements GenericApplicationListe
|
|||
for (Class<?> paramType : method.getParameterTypes()) {
|
||||
sj.add(paramType.getName());
|
||||
}
|
||||
return ClassUtils.getQualifiedMethodName(method) + sj.toString();
|
||||
return ClassUtils.getQualifiedMethodName(method) + sj;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Process the specified {@link ApplicationEvent}, checking if the condition
|
||||
* matches and handling a non-null result, if any.
|
||||
* @param event the event to process through the listener method
|
||||
*/
|
||||
public void processEvent(ApplicationEvent event) {
|
||||
Object[] args = resolveArguments(event);
|
||||
|
|
@ -240,6 +241,29 @@ public class ApplicationListenerMethodAdapter implements GenericApplicationListe
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the listener method would actually handle the given
|
||||
* event, checking if the condition matches.
|
||||
* @param event the event to process through the listener method
|
||||
* @since 6.1
|
||||
*/
|
||||
public boolean shouldHandle(ApplicationEvent event) {
|
||||
return shouldHandle(event, resolveArguments(event));
|
||||
}
|
||||
|
||||
private boolean shouldHandle(ApplicationEvent event, @Nullable Object[] args) {
|
||||
if (args == null) {
|
||||
return false;
|
||||
}
|
||||
String condition = getCondition();
|
||||
if (StringUtils.hasText(condition)) {
|
||||
Assert.notNull(this.evaluator, "EventExpressionEvaluator must not be null");
|
||||
return this.evaluator.condition(
|
||||
condition, event, this.targetMethod, this.methodKey, args, this.applicationContext);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the method arguments to use for the specified {@link ApplicationEvent}.
|
||||
* <p>These arguments will be used to invoke the method handled by this instance.
|
||||
|
|
@ -319,19 +343,6 @@ public class ApplicationListenerMethodAdapter implements GenericApplicationListe
|
|||
logger.error("Unexpected error occurred in asynchronous listener", t);
|
||||
}
|
||||
|
||||
private boolean shouldHandle(ApplicationEvent event, @Nullable Object[] args) {
|
||||
if (args == null) {
|
||||
return false;
|
||||
}
|
||||
String condition = getCondition();
|
||||
if (StringUtils.hasText(condition)) {
|
||||
Assert.notNull(this.evaluator, "EventExpressionEvaluator must not be null");
|
||||
return this.evaluator.condition(
|
||||
condition, event, this.targetMethod, this.methodKey, args, this.applicationContext);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoke the event listener method with the given argument values.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue