org.springframework.integration.handler
Class ArgumentArrayMessageMapper

java.lang.Object
  extended by org.springframework.integration.handler.ArgumentArrayMessageMapper
All Implemented Interfaces:
InboundMessageMapper<java.lang.Object[]>, OutboundMessageMapper<java.lang.Object[]>

public class ArgumentArrayMessageMapper
extends java.lang.Object
implements InboundMessageMapper<java.lang.Object[]>, OutboundMessageMapper<java.lang.Object[]>

A Message Mapper implementation that supports mapping from a Message to an argument array when invoking handler methods, and mapping to a Message from an argument array when invoking gateway methods.

When mapping from a Message, the method parameters are matched against the Message, its payload as well as its headers. A message or payload parameter must not be annotated, and there can be at most one of these. In certain special cases, more than one non-annotated parameter can be used (more on this later), but there should always be at most one parameter that is expecting the message or its payload.

If a method parameter is annotated with @Header, the annotation's value will be used as a header name. If such an annotation contains no value, then the parameter name will be used as long as the information is available in the class file (requires compilation with debug settings for parameter names).

In addition a Map or Properties parameter can receive multiple message headers. In the case of a Map argument, all headers will be passed, but in the case of a Properties argument, only the headers with String-typed values will be passed. These parameters can be labeled explicitly with the @Headers annotation, or matched implicitly by using a non- ambiguous method signature. There can be as many parameters annotated with

Since:
2.0
Author:
Mark Fisher, Iwein Fuld, Oleg Zhurakousky

Constructor Summary
ArgumentArrayMessageMapper(java.lang.reflect.Method method)
           
 
Method Summary
 java.lang.Object[] fromMessage(Message<?> message)
           
 Message<?> toMessage(java.lang.Object[] arguments)
           
 void validateMessageMapppings(Message<?> message)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArgumentArrayMessageMapper

public ArgumentArrayMessageMapper(java.lang.reflect.Method method)
Method Detail

fromMessage

public java.lang.Object[] fromMessage(Message<?> message)
Specified by:
fromMessage in interface OutboundMessageMapper<java.lang.Object[]>

toMessage

public Message<?> toMessage(java.lang.Object[] arguments)
Specified by:
toMessage in interface InboundMessageMapper<java.lang.Object[]>

validateMessageMapppings

public void validateMessageMapppings(Message<?> message)