public class DelegatingInvocableHandler extends Object
InvocableHandlerMethod
based on the message payload type.
Matches a single, non-annotated parameter or one that is annotated with
Payload
. Matches must be
unambiguous.Constructor and Description |
---|
DelegatingInvocableHandler(List<InvocableHandlerMethod> handlers,
InvocableHandlerMethod defaultHandler,
Object bean,
BeanExpressionResolver beanExpressionResolver,
BeanExpressionContext beanExpressionContext)
Construct an instance with the supplied handlers for the bean.
|
DelegatingInvocableHandler(List<InvocableHandlerMethod> handlers,
Object bean,
BeanExpressionResolver beanExpressionResolver,
BeanExpressionContext beanExpressionContext)
Construct an instance with the supplied handlers for the bean.
|
Modifier and Type | Method and Description |
---|---|
protected InvocableHandlerMethod |
findHandlerForPayload(Class<? extends Object> payloadClass) |
Object |
getBean() |
protected InvocableHandlerMethod |
getHandlerForPayload(Class<? extends Object> payloadClass) |
InvocationResult |
getInvocationResultFor(Object result,
Object inboundPayload) |
Method |
getMethodFor(Object payload)
Return the method that will be invoked for this payload.
|
String |
getMethodNameFor(Object payload)
Return a string representation of the method that will be invoked for this payload.
|
boolean |
hasDefaultHandler() |
InvocationResult |
invoke(Message<?> message,
Object... providedArgs)
Invoke the method with the given message.
|
protected boolean |
matchHandlerMethod(Class<? extends Object> payloadClass,
InvocableHandlerMethod handler) |
public DelegatingInvocableHandler(List<InvocableHandlerMethod> handlers, Object bean, BeanExpressionResolver beanExpressionResolver, BeanExpressionContext beanExpressionContext)
handlers
- the handlers.bean
- the bean.beanExpressionResolver
- the resolver.beanExpressionContext
- the context.public DelegatingInvocableHandler(List<InvocableHandlerMethod> handlers, @Nullable InvocableHandlerMethod defaultHandler, Object bean, BeanExpressionResolver beanExpressionResolver, BeanExpressionContext beanExpressionContext)
handlers
- the handlers.defaultHandler
- the default handler.bean
- the bean.beanExpressionResolver
- the resolver.beanExpressionContext
- the context.public Object getBean()
public InvocationResult invoke(Message<?> message, Object... providedArgs) throws Exception
message
- the message.providedArgs
- additional arguments.Exception
- raised if no suitable argument resolver can be found,
or the method raised an exception.protected InvocableHandlerMethod getHandlerForPayload(Class<? extends Object> payloadClass)
payloadClass
- the payload class.protected InvocableHandlerMethod findHandlerForPayload(Class<? extends Object> payloadClass)
protected boolean matchHandlerMethod(Class<? extends Object> payloadClass, InvocableHandlerMethod handler)
public String getMethodNameFor(Object payload)
payload
- the payload.public Method getMethodFor(Object payload)
payload
- the payload.public boolean hasDefaultHandler()
@Nullable public InvocationResult getInvocationResultFor(Object result, Object inboundPayload)