Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mule.transport
Class AbstractMessageAdapter

    java.lang.Object
      org.mule.transport.AbstractMessageAdapter

All Implemented Interfaces:
  Serializable, ThreadSafeAccess, MessageAdapter

Direct Known Subclasses:
  AjaxMessageAdapter, AxisMessageAdapter, CxfMessageAdapter, DefaultMessageAdapter, FileMessageAdapter, HttpMessageAdapter, HttpRequestMessageAdapter, JmsMessageAdapter, RmiMessageAdapter, SimpleMailMessageAdapter, UdpMessageAdapter, WriterMessageAdapter, XmppMessageAdapter

    public abstract class AbstractMessageAdapter

extends Object
implements MessageAdapter, ThreadSafeAccess

`AbstractMessageAdapter` provides a base implementation for simple message types that maybe don't normally allow for meta information, such as a File or TCP.

See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from interface org.mule.api.ThreadSafeAccess
`ThreadSafeAccess.AccessControl`

Field Summary
`protected edu.emory.mathcs.backport.java.util.concurrent.ConcurrentMap` | `attachments` Collection of attachments associatated with this message
`protected ExceptionPayload` | `exceptionPayload` If an excpetion occurs while processing this message an exception payload will be attached here
`protected String` | `id` The default UUID for the message.
`protected static Log` | `logger` logger used by this class
`protected MessagePropertiesContext` | `properties` Scoped properties for this message

Fields inherited from interface org.mule.api.ThreadSafeAccess
`READ, WRITE`

Constructor Summary
`protected` | `AbstractMessageAdapter()`
`protected` | `AbstractMessageAdapter(MessageAdapter template)` Creates a message adapter copying values from an existing one

Method Summary
`void` | `addAttachment(String name, DataHandler dataHandler)` Allows for arbitary data attachments to be associated with the Message.
`protected void` | `addInboundProperties(Map props)` A convenience method for extending classes to Set inbound scoped properties on the message properties that arrive on the inbound message should be set as inbound-scoped properties.
`void` | `addProperties(Map<String,Object> props)` Adds a map of properties to be associated with this message
`void` | `addProperties(Map<String,Object> props, PropertyScope scope)` Adds a map of properties to be associated with this message
`void` | `assertAccess(boolean write)` This method may be called before data in the object are accessed.
`void` | `clearProperties()` Removes all properties on this message
`DataHandler` | `getAttachment(String name)` Retrieve an attachment with the given name.
`Set<String>` | `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` | `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<String>` | `getPropertyNames()`
`Set<String>` | `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.
`protected boolean` | `isDisabled()`
`protected IllegalStateException` | `newException(String message)`
`ThreadSafeAccess` | `newThreadCopy()`
`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` | `resetAccessControl()` This method should ONLY be used in the construction of composite ThreadSafeAccess instances.
`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 correlationId)` 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
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.mule.api.transport.MessageAdapter
`getPayload`

Field Detail

### logger

    protected static transient Log logger

  logger used by this class

### properties

    protected MessagePropertiesContext properties

  Scoped properties for this message

### attachments

    protected edu.emory.mathcs.backport.java.util.concurrent.ConcurrentMap attachments

  Collection of attachments associatated with this message

### exceptionPayload

    protected ExceptionPayload exceptionPayload

  If an excpetion occurs while processing this message an exception payload will be attached here

### id

    protected String id

  The default UUID for the message. If the underlying transport has the notion of a message id, this uuid will be ignored

Constructor Detail

### AbstractMessageAdapter

    protected AbstractMessageAdapter()

### AbstractMessageAdapter

    protected AbstractMessageAdapter(MessageAdapter template)

  Creates a message adapter copying values from an existing one

  Parameters:
    `template` -

Method Detail

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### addProperties

    public void addProperties(Map<String,Object> props)

  Adds a map of properties to be associated with this message

  Specified by:
    `addProperties` in interface `MessageAdapter`
  Parameters:
    `props` - the properties add to this message

### addProperties

    public void addProperties(Map<String,Object> props,
                              PropertyScope scope)

  Adds a map of properties to be associated with this message

  Specified by:
    `addProperties` in interface `MessageAdapter`
  Parameters:
    `props` - the properties add to this message
    `scope` - the scope in which the proeprties should be added

### addInboundProperties

    protected void addInboundProperties(Map props)

  A convenience method for extending classes to Set inbound scoped properties on the message properties that arrive on the inbound message should be set as inbound-scoped properties. These are read-only

  Parameters:
    `props` - the properties to set
  See Also:
    `PropertyScope`

### clearProperties

    public void clearProperties()

  Removes all properties on this message

  Specified by:
    `clearProperties` in interface `MessageAdapter`

### removeProperty

    public Object removeProperty(String key)

  Removes a property on this message

  Specified by:
    `removeProperty` in interface `MessageAdapter`
  Parameters:
    `key` - the property key to remove
  Returns:
    the removed property value or null if the property did not exist

### getProperty

    public Object getProperty(String key)

  Gets a property of the message implementation

  Specified by:
    `getProperty` in interface `MessageAdapter`
  Parameters:
    `key` - the key on which to lookup the property value
  Returns:
    the property value or null if the property does not exist

### getPropertyNames

    public Set<String> getPropertyNames()

  Specified by:
    `getPropertyNames` in interface `MessageAdapter`
  Returns:
    all property keys on this message

### getPropertyNames

    public Set<String> getPropertyNames(PropertyScope scope)

  Gets all property names in a given scope

  Specified by:
    `getPropertyNames` in interface `MessageAdapter`
  Parameters:
    `scope` - the scope of property names
  Returns:
    all property keys on this message

### setProperty

    public void setProperty(String key,
                            Object value)

  Set a property on the message

  Specified by:
    `setProperty` in interface `MessageAdapter`
  Parameters:
    `key` - the key on which to associate the value
    `value` - the property value

### setProperty

    public void setProperty(String key,
                            Object value,
                            PropertyScope scope)

  Set a property on the message

  Specified by:
    `setProperty` in interface `MessageAdapter`
  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`

### getUniqueId

    public String getUniqueId()

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

  Specified by:
    `getUniqueId` in interface `MessageAdapter`
  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

    public Object getProperty(String name,
                              Object defaultValue)

  Gets a property from the message

  Specified by:
    `getProperty` in interface `MessageAdapter`
  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

    public Object getProperty(String name,
                              PropertyScope scope)

  Gets a property from the message with a given scope

  Specified by:
    `getProperty` in interface `MessageAdapter`
  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

    public int getIntProperty(String name,
                              int defaultValue)

  Gets an integer property from the message

  Specified by:
    `getIntProperty` in interface `MessageAdapter`
  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

    public long getLongProperty(String name,
                                long defaultValue)

  Gets a long property from the message

  Specified by:
    `getLongProperty` in interface `MessageAdapter`
  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

    public double getDoubleProperty(String name,
                                    double defaultValue)

  Gets a double property from the message

  Specified by:
    `getDoubleProperty` in interface `MessageAdapter`
  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

    public boolean getBooleanProperty(String name,
                                      boolean defaultValue)

  Gets a boolean property from the message

  Specified by:
    `getBooleanProperty` in interface `MessageAdapter`
  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

### getStringProperty

    public String getStringProperty(String name,
                                    String defaultValue)

  Gets a String property from the message

  Specified by:
    `getStringProperty` in interface `MessageAdapter`
  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

    public void setBooleanProperty(String name,
                                   boolean value)

  Sets a boolean property on the message

  Specified by:
    `setBooleanProperty` in interface `MessageAdapter`
  Parameters:
    `name` - the property name or key
    `value` - the property value

### setIntProperty

    public void setIntProperty(String name,
                               int value)

  Sets a integerproperty on the message

  Specified by:
    `setIntProperty` in interface `MessageAdapter`
  Parameters:
    `name` - the property name or key
    `value` - the property value

### setLongProperty

    public void setLongProperty(String name,
                                long value)

  Description copied from interface: `MessageAdapter`
  Sets a long property on the message

  Specified by:
    `setLongProperty` in interface `MessageAdapter`
  Parameters:
    `name` - the property name or key
    `value` - the property value

### setDoubleProperty

    public void setDoubleProperty(String name,
                                  double value)

  Description copied from interface: `MessageAdapter`
  Sets a double property on the message

  Specified by:
    `setDoubleProperty` in interface `MessageAdapter`
  Parameters:
    `name` - the property name or key
    `value` - the property value

### setStringProperty

    public void setStringProperty(String name,
                                  String value)

  Sets a String property on the message

  Specified by:
    `setStringProperty` in interface `MessageAdapter`
  Parameters:
    `name` - the property name or key
    `value` - the property value

### getReplyTo

    public 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.

  Specified by:
    `getReplyTo` in interface `MessageAdapter`
  Returns:
    the endpointUri url to reply to or null if one has not been set

### setReplyTo

    public 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.

  Specified by:
    `setReplyTo` in interface `MessageAdapter`
  Parameters:
    `replyTo` - the endpointUri url to reply to

### getCorrelationId

    public 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.

  Specified by:
    `getCorrelationId` in interface `MessageAdapter`
  Returns:
    the correlationId for this message or null if one hasn't been set

### setCorrelationId

    public void setCorrelationId(String correlationId)

  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.

  Specified by:
    `setCorrelationId` in interface `MessageAdapter`
  Parameters:
    `correlationId` - the Id reference for this relationship

### getCorrelationSequence

    public int getCorrelationSequence()

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

  Specified by:
    `getCorrelationSequence` in interface `MessageAdapter`
  Returns:
    the sequence number or -1 if the sequence is not important

### setCorrelationSequence

    public void setCorrelationSequence(int sequence)

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

  Specified by:
    `setCorrelationSequence` in interface `MessageAdapter`
  Parameters:
    `sequence` - the sequence number or -1 if the sequence is not important

### getCorrelationGroupSize

    public int getCorrelationGroupSize()

  Determines how many messages are in the correlation group

  Specified by:
    `getCorrelationGroupSize` in interface `MessageAdapter`
  Returns:
    total messages in this group or -1 if the size is not known

### setCorrelationGroupSize

    public void setCorrelationGroupSize(int size)

  Determines how many messages are in the correlation group

  Specified by:
    `setCorrelationGroupSize` in interface `MessageAdapter`
  Parameters:
    `size` - the total messages in this group or -1 if the size is not known

### getExceptionPayload

    public ExceptionPayload getExceptionPayload()

  Description copied from interface: `MessageAdapter`
  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

  Specified by:
    `getExceptionPayload` in interface `MessageAdapter`
  Returns:
    The exception payload (if any) attached to this message

### setExceptionPayload

    public 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.

  Specified by:
    `setExceptionPayload` in interface `MessageAdapter`
  Parameters:
    `payload` - The exception payload to attach to this message

### addAttachment

    public 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

  Specified by:
    `addAttachment` in interface `MessageAdapter`
  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

    public void removeAttachment(String name)
                          throws Exception

  Remove an attahcment form this message with the specifed name

  Specified by:
    `removeAttachment` in interface `MessageAdapter`
  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

    public DataHandler getAttachment(String name)

  Retrieve an attachment with the given name. If the attachment does not exist, null will be returned

  Specified by:
    `getAttachment` in interface `MessageAdapter`
  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

    public Set<String> getAttachmentNames()

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

  Specified by:
    `getAttachmentNames` in interface `MessageAdapter`
  Returns:
    a set of the names of the attachments on this message. If there are no attachments an empty set will be returned.

### getEncoding

    public 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.

  Specified by:
    `getEncoding` in interface `MessageAdapter`
  Returns:
    the encoding for this message. This method must never return null

### setEncoding

    public void setEncoding(String encoding)

  Sets the encoding for this message

  Specified by:
    `setEncoding` in interface `MessageAdapter`
  Parameters:
    `encoding` - the encoding to use

### release

    public void release()

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

  Specified by:
    `release` in interface `MessageAdapter`

### assertAccess

    public void assertAccess(boolean write)

  This method may be called before data in the object are accessed. It should verify that the access policy is followed correctly (if not, a runtime exception may be thrown).

  Specified by:
    `assertAccess` in interface `ThreadSafeAccess`
  Parameters:
    `write` - True if the access will mutate values.

### newException

    protected IllegalStateException newException(String message)

### isDisabled

    protected boolean isDisabled()

### resetAccessControl

    public void resetAccessControl()

  This method should ONLY be used in the construction of composite ThreadSafeAccess instances. For example, a ThreadSafeAccess MuleEvent contains a ThreadSafeAccess MessageAdapter. During the construction of the event, the message adapter may be bound to the contructing thread. Calling this method releases that binding so that the event as a whole can be passed to a new thread unbound.

  Specified by:
    `resetAccessControl` in interface `ThreadSafeAccess`

### newThreadCopy

    public ThreadSafeAccess newThreadCopy()

  Specified by:
    `newThreadCopy` in interface `ThreadSafeAccess`
  Returns:
    A new instance of the implementing class, unbound to any thread and mutable.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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