org.mule.api.transport
Interface MessageAdapter

All Superinterfaces:
Serializable
All Known Subinterfaces:
MuleMessage, MuleMessageCollection, MutableMessageAdapter
All Known Implementing Classes:
AbstractMessageAdapter, AxisMessageAdapter, CxfMessageAdapter, DefaultMessageAdapter, DefaultMessageCollection, DefaultMuleMessage, EjbMessageAdapter, FileContentsMessageAdapter, FileMessageAdapter, HttpMessageAdapter, HttpRequestMessageAdapter, JmsMessageAdapter, MailMessageAdapter, MulticastMessageAdapter, RmiMessageAdapter, SimpleMailMessageAdapter, UdpMessageAdapter, WriterMessageAdapter, XmppMessageAdapter

public interface MessageAdapter
extends Serializable

MessageAdapter provides a common abstraction of different message implementations provided by different underlying technologies.


Method Summary
 void addAttachment(String name, DataHandler dataHandler)
          Allows for arbitary data attachments to be associated with the Message.
 void addProperties(Map properties)
          Adds a map of properties to be associated with this message
 void addProperties(Map properties, PropertyScope scope)
          Adds a map of properties to be associated with this message
 void clearProperties()
          Removes all properties on this message
 DataHandler getAttachment(String name)
          Retrieve an attachment with the given name.
 Set getAttachmentNames()
          Returns a set of the names of the attachments on this message.
 boolean getBooleanProperty(String name, boolean defaultValue)
          Gets a boolean property from the message
 int getCorrelationGroupSize()
          Determines how many messages are in the correlation group
 String getCorrelationId()
          Sets a correlationId for this message.
 int getCorrelationSequence()
          Gets the sequence or ordering number for this message in the the correlation group (as defined by the correlationId)
 double getDoubleProperty(String name, double defaultValue)
          Gets a double property from the message
 String getEncoding()
          Gets the encoding for the current message.
 ExceptionPayload getExceptionPayload()
          If an error occurred during the processing of this message this will return a ErrorPayload that contains the root exception and Mule error code, plus any other releated info
 int getIntProperty(String name, int defaultValue)
          Gets an integer property from the message
 long getLongProperty(String name, long defaultValue)
          Gets a long property from the message
 Object getPayload()
           
 Object getProperty(String key)
          Gets a property of the message implementation
 Object getProperty(String name, Object defaultValue)
          Gets a property from the message
 Object getProperty(String name, PropertyScope scope)
          Gets a property from the message with a given scope
 Set getPropertyNames()
           
 Set getPropertyNames(PropertyScope scope)
          Gets all property names in a given scope
 Object getReplyTo()
          Returns a replyTo address for this message.
 String getStringProperty(String name, String defaultValue)
          Gets a String property from the message
 String getUniqueId()
          gets the unique identifier for the message.
 void release()
          Perform any clean up operations on the message resource.
 void removeAttachment(String name)
          Remove an attahcment form this message with the specifed name
 Object removeProperty(String key)
          Removes a property on this message
 void setBooleanProperty(String name, boolean value)
          Sets a boolean property on the message
 void setCorrelationGroupSize(int size)
          Determines how many messages are in the correlation group
 void setCorrelationId(String id)
          Sets a correlationId for this message.
 void setCorrelationSequence(int sequence)
          Gets the sequence or ordering number for this message in the the correlation group (as defined by the correlationId)
 void setDoubleProperty(String name, double value)
          Sets a double property on the message
 void setEncoding(String encoding)
          Sets the encoding for this message
 void setExceptionPayload(ExceptionPayload payload)
          If an error occurs while processing this message, a ErrorPayload is attached which contains the root exception and Mule error code, plus any other releated info.
 void setIntProperty(String name, int value)
          Sets a integerproperty on the message
 void setLongProperty(String name, long value)
          Sets a long property on the message
 void setProperty(String key, Object value)
          Set a property on the message
 void setProperty(String key, Object value, PropertyScope scope)
          Set a property on the message
 void setReplyTo(Object replyTo)
          Sets a replyTo address for this message.
 void setStringProperty(String name, String value)
          Sets a String property on the message
 

Method Detail

addProperties

void addProperties(Map properties)
Adds a map of properties to be associated with this message

Parameters:
properties - the properties add to this message

addProperties

void addProperties(Map properties,
                   PropertyScope scope)
Adds a map of properties to be associated with this message

Parameters:
properties - the properties add to this message
scope - the scope in which the proeprties should be added

clearProperties

void clearProperties()
Removes all properties on this message


getProperty

Object getProperty(String key)
Gets a property of the message implementation

Parameters:
key - the key on which to lookup the property value
Returns:
the property value or null if the property does not exist

setProperty

void setProperty(String key,
                 Object value)
Set a property on the message

Parameters:
key - the key on which to associate the value
value - the property value

setProperty

void setProperty(String key,
                 Object value,
                 PropertyScope scope)
Set a property on the message

Parameters:
key - the key on which to associate the value
value - the property value
scope - The scope at which to set the property at
See Also:
PropertyScope

removeProperty

Object removeProperty(String key)
Removes a property on this message

Parameters:
key - the property key to remove
Returns:
the removed property value or null if the property did not exist

getPropertyNames

Set getPropertyNames()
Returns:
all property keys on this message

getPropertyNames

Set getPropertyNames(PropertyScope scope)
Gets all property names in a given scope

Parameters:
scope - the scope of property names
Returns:
all property keys on this message

getPayload

Object getPayload()
Returns:
the current message

getUniqueId

String getUniqueId()
gets the unique identifier for the message. It's up to the implementation to ensure a unique id

Returns:
a unique message id. The Id should never be null. If the underlying transport does not have the notion of a message Id, one shuold be generated. The generated Id should be a UUID.

getProperty

Object getProperty(String name,
                   Object defaultValue)
Gets a property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

getProperty

Object getProperty(String name,
                   PropertyScope scope)
Gets a property from the message with a given scope

Parameters:
name - the name or key of the property
scope - The scope of the property to retrieve
Returns:
the property value or the defaultValue if the property does not exist in the specificed scope

getIntProperty

int getIntProperty(String name,
                   int defaultValue)
Gets an integer property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

getLongProperty

long getLongProperty(String name,
                     long defaultValue)
Gets a long property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

getDoubleProperty

double getDoubleProperty(String name,
                         double defaultValue)
Gets a double property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

getBooleanProperty

boolean getBooleanProperty(String name,
                           boolean defaultValue)
Gets a boolean property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

setBooleanProperty

void setBooleanProperty(String name,
                        boolean value)
Sets a boolean property on the message

Parameters:
name - the property name or key
value - the property value

setIntProperty

void setIntProperty(String name,
                    int value)
Sets a integerproperty on the message

Parameters:
name - the property name or key
value - the property value

setLongProperty

void setLongProperty(String name,
                     long value)
Sets a long property on the message

Parameters:
name - the property name or key
value - the property value

setDoubleProperty

void setDoubleProperty(String name,
                       double value)
Sets a double property on the message

Parameters:
name - the property name or key
value - the property value

getStringProperty

String getStringProperty(String name,
                         String defaultValue)
Gets a String property from the message

Parameters:
name - the name or key of the property
defaultValue - a default value if the property doesn't exist in the event
Returns:
the property value or the defaultValue if the property does not exist

setStringProperty

void setStringProperty(String name,
                       String value)
Sets a String property on the message

Parameters:
name - the property name or key
value - the property value

setCorrelationId

void setCorrelationId(String id)
Sets a correlationId for this message. The correlation Id can be used by components in the system to manage message relations

transport protocol. As such not all messages will support the notion of a correlationId i.e. tcp or file. In this situation the correlation Id is set as a property of the message where it's up to developer to keep the association with the message. For example if the message is serialised to xml the correlationId will be available in the message.

Parameters:
id - the Id reference for this relationship

getCorrelationId

String getCorrelationId()
Sets a correlationId for this message. The correlation Id can be used by components in the system to manage message relations.

The correlationId is associated with the message using the underlying transport protocol. As such not all messages will support the notion of a correlationId i.e. tcp or file. In this situation the correlation Id is set as a property of the message where it's up to developer to keep the association with the message. For example if the message is serialised to xml the correlationId will be available in the message.

Returns:
the correlationId for this message or null if one hasn't been set

getCorrelationSequence

int getCorrelationSequence()
Gets the sequence or ordering number for this message in the the correlation group (as defined by the correlationId)

Returns:
the sequence number or -1 if the sequence is not important

setCorrelationSequence

void setCorrelationSequence(int sequence)
Gets the sequence or ordering number for this message in the the correlation group (as defined by the correlationId)

Parameters:
sequence - the sequence number or -1 if the sequence is not important

getCorrelationGroupSize

int getCorrelationGroupSize()
Determines how many messages are in the correlation group

Returns:
total messages in this group or -1 if the size is not known

setCorrelationGroupSize

void setCorrelationGroupSize(int size)
Determines how many messages are in the correlation group

Parameters:
size - the total messages in this group or -1 if the size is not known

setReplyTo

void setReplyTo(Object replyTo)
Sets a replyTo address for this message. This is useful in an asynchronous environment where the caller doesn't wait for a response and the response needs to be routed somewhere for further processing. The value of this field can be any valid endpointUri url.

Parameters:
replyTo - the endpointUri url to reply to

getReplyTo

Object getReplyTo()
Returns a replyTo address for this message. This is useful in an asynchronous environment where the caller doesn't wait for a response and the response needs to be routed somewhere for further processing. The value of this field can be any valid endpointUri url.

Returns:
the endpointUri url to reply to or null if one has not been set

getExceptionPayload

ExceptionPayload getExceptionPayload()
If an error occurred during the processing of this message this will return a ErrorPayload that contains the root exception and Mule error code, plus any other releated info

Returns:
The exception payload (if any) attached to this message

setExceptionPayload

void setExceptionPayload(ExceptionPayload payload)
If an error occurs while processing this message, a ErrorPayload is attached which contains the root exception and Mule error code, plus any other releated info.

Parameters:
payload - The exception payload to attach to this message

addAttachment

void addAttachment(String name,
                   DataHandler dataHandler)
                   throws Exception
Allows for arbitary data attachments to be associated with the Message. These attachements work in the same way that email attachments work. Attachments can be binary or text

Parameters:
name - the name to associate with the attachment
dataHandler - The attachment datahandler to use. This will be used to interract with the attachment data
Throws:
Exception
See Also:
DataHandler

removeAttachment

void removeAttachment(String name)
                      throws Exception
Remove an attahcment form this message with the specifed name

Parameters:
name - the name of the attachment to remove. If the attachment does not exist, the request may be ignorred
Throws:
Exception - different messaging systems handle attachments differnetly, as such some will throw an exception if an attahcment does dot exist.

getAttachment

DataHandler getAttachment(String name)
Retrieve an attachment with the given name. If the attachment does not exist, null will be returned

Parameters:
name - the name of the attachment to retrieve
Returns:
the attachment with the given name or null if the attachment does not exist
See Also:
DataHandler

getAttachmentNames

Set getAttachmentNames()
Returns a set of the names of the attachments on this message. If there are no attachments an empty set will be returned.

Returns:
a set of the names of the attachments on this message. If there are no attachments an empty set will be returned.

getEncoding

String getEncoding()
Gets the encoding for the current message. For potocols that send encoding information with the message, this method should be overriden to expose the transport encoding, otherwise the default encoding in the Mule configuration will be used.

Returns:
the encoding for this message. This method must never return null

setEncoding

void setEncoding(String encoding)
Sets the encoding for this message

Parameters:
encoding - the encoding to use

release

void release()
Perform any clean up operations on the message resource. Typically this is used to esure that a message stream is closed



Copyright © 2003-2009 MuleSource, Inc.. All Rights Reserved.