Class DelegatingInvocableHandler


  • public class DelegatingInvocableHandler
    extends java.lang.Object
    Delegates to an InvocableHandlerMethod based on the message payload type. Matches a single, non-annotated parameter or one that is annotated with Payload. Matches must be unambiguous.
    Author:
    Gary Russell
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.springframework.messaging.handler.invocation.InvocableHandlerMethod findHandlerForPayload​(java.lang.Class<? extends java.lang.Object> payloadClass)  
      java.lang.Object getBean()
      Return the bean for this handler.
      protected org.springframework.messaging.handler.invocation.InvocableHandlerMethod getHandlerForPayload​(java.lang.Class<? extends java.lang.Object> payloadClass)
      Determine the InvocableHandlerMethod for the provided type.
      java.lang.String getMethodNameFor​(java.lang.Object payload)
      Return a string representation of the method that will be invoked for this payload.
      boolean hasDefaultHandler()  
      java.lang.Object invoke​(org.springframework.messaging.Message<?> message, java.lang.Object... providedArgs)
      Invoke the method with the given message.
      protected boolean matchHandlerMethod​(java.lang.Class<? extends java.lang.Object> payloadClass, org.springframework.messaging.handler.invocation.InvocableHandlerMethod handler)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DelegatingInvocableHandler

        @Deprecated
        public DelegatingInvocableHandler​(java.util.List<org.springframework.messaging.handler.invocation.InvocableHandlerMethod> handlers,
                                          java.lang.Object bean,
                                          org.springframework.beans.factory.config.BeanExpressionResolver beanExpressionResolver,
                                          org.springframework.beans.factory.config.BeanExpressionContext beanExpressionContext)
        Construct an instance with the supplied handlers for the bean.
        Parameters:
        handlers - the handlers.
        bean - the bean.
        beanExpressionResolver - the expression resolver.
        beanExpressionContext - the expression context.
      • DelegatingInvocableHandler

        @Deprecated
        public DelegatingInvocableHandler​(java.util.List<org.springframework.messaging.handler.invocation.InvocableHandlerMethod> handlers,
                                          @Nullable
                                          org.springframework.messaging.handler.invocation.InvocableHandlerMethod defaultHandler,
                                          java.lang.Object bean,
                                          org.springframework.beans.factory.config.BeanExpressionResolver beanExpressionResolver,
                                          org.springframework.beans.factory.config.BeanExpressionContext beanExpressionContext)
        Construct an instance with the supplied handlers for the bean.
        Parameters:
        handlers - the handlers.
        defaultHandler - the default handler.
        bean - the bean.
        beanExpressionResolver - the resolver.
        beanExpressionContext - the context.
        Since:
        2.1.3
      • DelegatingInvocableHandler

        @Deprecated
        public DelegatingInvocableHandler​(java.util.List<org.springframework.messaging.handler.invocation.InvocableHandlerMethod> handlers,
                                          @Nullable
                                          org.springframework.messaging.handler.invocation.InvocableHandlerMethod defaultHandler,
                                          java.lang.Object bean,
                                          org.springframework.beans.factory.config.BeanExpressionResolver beanExpressionResolver,
                                          org.springframework.beans.factory.config.BeanExpressionContext beanExpressionContext,
                                          @Nullable
                                          org.springframework.beans.factory.BeanFactory beanFactory)
        Construct an instance with the supplied handlers for the bean.
        Parameters:
        handlers - the handlers.
        defaultHandler - the default handler.
        bean - the bean.
        beanExpressionResolver - the resolver.
        beanExpressionContext - the context.
        beanFactory - the bean factory.
        Since:
        2.5.11
      • DelegatingInvocableHandler

        public DelegatingInvocableHandler​(java.util.List<org.springframework.messaging.handler.invocation.InvocableHandlerMethod> handlers,
                                          @Nullable
                                          org.springframework.messaging.handler.invocation.InvocableHandlerMethod defaultHandler,
                                          java.lang.Object bean,
                                          org.springframework.beans.factory.config.BeanExpressionResolver beanExpressionResolver,
                                          org.springframework.beans.factory.config.BeanExpressionContext beanExpressionContext,
                                          @Nullable
                                          org.springframework.beans.factory.BeanFactory beanFactory,
                                          @Nullable
                                          org.springframework.validation.Validator validator)
        Construct an instance with the supplied handlers for the bean.
        Parameters:
        handlers - the handlers.
        defaultHandler - the default handler.
        bean - the bean.
        beanExpressionResolver - the resolver.
        beanExpressionContext - the context.
        beanFactory - the bean factory.
        validator - the validator.
        Since:
        2.5.11
    • Method Detail

      • getBean

        public java.lang.Object getBean()
        Return the bean for this handler.
        Returns:
        the bean.
      • invoke

        public java.lang.Object invoke​(org.springframework.messaging.Message<?> message,
                                       java.lang.Object... providedArgs)
                                throws java.lang.Exception
        Invoke the method with the given message.
        Parameters:
        message - the message.
        providedArgs - additional arguments.
        Returns:
        the result of the invocation.
        Throws:
        java.lang.Exception - raised if no suitable argument resolver can be found, or the method raised an exception.
      • getHandlerForPayload

        protected org.springframework.messaging.handler.invocation.InvocableHandlerMethod getHandlerForPayload​(java.lang.Class<? extends java.lang.Object> payloadClass)
        Determine the InvocableHandlerMethod for the provided type.
        Parameters:
        payloadClass - the payload class.
        Returns:
        the handler.
      • findHandlerForPayload

        protected org.springframework.messaging.handler.invocation.InvocableHandlerMethod findHandlerForPayload​(java.lang.Class<? extends java.lang.Object> payloadClass)
      • matchHandlerMethod

        protected boolean matchHandlerMethod​(java.lang.Class<? extends java.lang.Object> payloadClass,
                                             org.springframework.messaging.handler.invocation.InvocableHandlerMethod handler)
      • getMethodNameFor

        public java.lang.String getMethodNameFor​(java.lang.Object payload)
        Return a string representation of the method that will be invoked for this payload.
        Parameters:
        payload - the payload.
        Returns:
        the method name.
      • hasDefaultHandler

        public boolean hasDefaultHandler()