## org.hornetq.api.core
Interface Message

All Known Subinterfaces:
  ClientMessage

    public interface Message

A Message is a routable instance that has a payload.
The payload (the "body") is opaque to the messaging system. A Message also has a fixed set of headers (required by the messaging system) and properties (defined by the users) that can be used by the messaging system to route the message (e.g. to ensure it matches a queue filter).

## Message Properties

Message can contain properties specified by the users. It is possible to convert from some types to other types as specified by the following table:

     |        | boolean byte short int long float double String byte[]
     |----------------------------------------------------------------
     |boolean |    X                                      X
     |byte    |          X    X    X   X                  X
     |short   |               X    X   X                  X
     |int     |                    X   X                  X
     |long    |                        X                  X
     |float   |                              X     X      X
     |double  |                                    X      X
     |String  |    X     X    X    X   X     X     X      X
     |byte[]  |                                                   X
     |-----------------------------------------------------------------

If conversion is not allowed (for example calling `getFloatProperty` on a property set a `boolean`), a PropertyConversionException will be thrown.

Version:
  `$Revision: 3341 $` $Id: Message.java 3341 2007-11-19 14:34:57Z timfox $
Author:
  Tim Fox, ClebertSuconic

Field Summary
`static byte` `BYTES_TYPE`
`static byte` `DEFAULT_TYPE`
`static SimpleString` `HDR_ACTUAL_EXPIRY_TIME`
`static SimpleString` `HDR_DUPLICATE_DETECTION_ID`
`static SimpleString` `HDR_GROUP_ID`
`static SimpleString` `HDR_LARGE_BODY_SIZE`
`static SimpleString` `HDR_LARGE_COMPRESSED`
`static SimpleString` `HDR_LAST_VALUE_NAME`
`static SimpleString` `HDR_ORIG_MESSAGE_ID`
`static SimpleString` `HDR_ORIGINAL_ADDRESS`
`static SimpleString` `HDR_SCHEDULED_DELIVERY_TIME`
`static byte` `MAP_TYPE`
`static byte` `OBJECT_TYPE`
`static byte` `STREAM_TYPE`
`static byte` `TEXT_TYPE`

Method Summary
`boolean` `containsProperty(SimpleString key)` Returns `true` if this message contains a property with the given key, `false` else.
`boolean` `containsProperty(String key)`
`SimpleString` `getAddress()` Returns the address this message is sent to.
`HornetQBuffer` `getBodyBuffer()` Returns the message body as a HornetQBuffer
`HornetQBuffer` `getBodyBufferCopy()` Returns a copy of the message body as a HornetQBuffer.
`Boolean` `getBooleanProperty(SimpleString key)` Returns the property corresponding to the specified key as a Boolean.
`Boolean` `getBooleanProperty(String key)`
`Byte` `getByteProperty(SimpleString key)` Returns the property corresponding to the specified key as a Byte.
`Byte` `getByteProperty(String key)`
`byte[]` `getBytesProperty(SimpleString key)` Returns the property corresponding to the specified key as a byte[].
`byte[]` `getBytesProperty(String key)`
`Double` `getDoubleProperty(SimpleString key)` Returns the property corresponding to the specified key as a Double.
`Double` `getDoubleProperty(String key)`
`int` `getEncodeSize()` Returns the size of the encoded message.
`long` `getExpiration()` Returns the expiration time of this message.
`Float` `getFloatProperty(SimpleString key)` Returns the property corresponding to the specified key as a Float.
`Float` `getFloatProperty(String key)`
`Integer` `getIntProperty(SimpleString key)` Returns the property corresponding to the specified key as an Integer.
`Integer` `getIntProperty(String key)`
`Long` `getLongProperty(SimpleString key)` Returns the property corresponding to the specified key as a Long.
`Long` `getLongProperty(String key)`
`long` `getMessageID()` Returns the messageID.
`Object` `getObjectProperty(SimpleString key)` Returns the property corresponding to the specified key
`Object` `getObjectProperty(String key)`
`byte` `getPriority()` Returns the message priority.
`Set<SimpleString>` `getPropertyNames()` Returns all the names of the properties for this message.
`Short` `getShortProperty(SimpleString key)` Returns the property corresponding to the specified key as a Short.
`Short` `getShortProperty(String key)`
`SimpleString` `getSimpleStringProperty(SimpleString key)` Returns the property corresponding to the specified key as a SimpleString.
`SimpleString` `getSimpleStringProperty(String key)`
`String` `getStringProperty(SimpleString key)` Returns the property corresponding to the specified key as a String.
`String` `getStringProperty(String key)`
`long` `getTimestamp()` Returns the message timestamp.
`byte` `getType()` Returns this message type.
`org.hornetq.utils.UUID` `getUserID()` Returns the userID - this is an optional user specified UUID that can be set to identify the message and will be passed around with the message
`boolean` `isDurable()` Returns whether this message is durable or not.
`boolean` `isExpired()` Returns whether this message is expired or not.
`boolean` `isLargeMessage()` Returns whether this message is a large message or a regular message.
`void` `putBooleanProperty(SimpleString key, boolean value)` Puts a boolean property in this message.
`void` `putBooleanProperty(String key, boolean value)`
`void` `putByteProperty(SimpleString key, byte value)` Puts a byte property in this message.
`void` `putByteProperty(String key, byte value)`
`void` `putBytesProperty(SimpleString key, byte[] value)` Puts a byte[] property in this message.
`void` `putBytesProperty(String key, byte[] value)`
`void` `putDoubleProperty(SimpleString key, double value)` Puts a double property in this message.
`void` `putDoubleProperty(String key, double value)`
`void` `putFloatProperty(SimpleString key, float value)` Puts a float property in this message.
`void` `putFloatProperty(String key, float value)`
`void` `putIntProperty(SimpleString key, int value)` Puts a int property in this message.
`void` `putIntProperty(String key, int value)`
`void` `putLongProperty(SimpleString key, long value)` Puts a long property in this message.
`void` `putLongProperty(String key, long value)`
`void` `putObjectProperty(SimpleString key, Object value)` Puts an Object property in this message.
`void` `putObjectProperty(String key, Object value)`
`void` `putShortProperty(SimpleString key, short value)` Puts a short property in this message.
`void` `putShortProperty(String key, short value)`
`void` `putStringProperty(SimpleString key, SimpleString value)` Puts a SimpleString property in this message.
`void` `putStringProperty(String key, String value)` Puts a String property in this message.
`Object` `removeProperty(SimpleString key)` Removes the property corresponding to the specified key.
`Object` `removeProperty(String key)`
`void` `setAddress(SimpleString address)` Sets the address to send this message to.
`void` `setDurable(boolean durable)` Sets whether this message is durable or not.
`void` `setExpiration(long expiration)` Sets the expiration of this message.
`void` `setPriority(byte priority)` Sets the message priority.
`void` `setTimestamp(long timestamp)` Sets the message timestamp.
`void` `setUserID(org.hornetq.utils.UUID userID)` Sets the user ID
`Map<String,Object>` `toMap()`

Field Detail

### HDR_ACTUAL_EXPIRY_TIME

    static final SimpleString HDR_ACTUAL_EXPIRY_TIME

### HDR_ORIGINAL_ADDRESS

    static final SimpleString HDR_ORIGINAL_ADDRESS

### HDR_ORIG_MESSAGE_ID

    static final SimpleString HDR_ORIG_MESSAGE_ID

### HDR_GROUP_ID

    static final SimpleString HDR_GROUP_ID

### HDR_LARGE_COMPRESSED

    static final SimpleString HDR_LARGE_COMPRESSED

### HDR_LARGE_BODY_SIZE

    static final SimpleString HDR_LARGE_BODY_SIZE

### HDR_SCHEDULED_DELIVERY_TIME

    static final SimpleString HDR_SCHEDULED_DELIVERY_TIME

### HDR_DUPLICATE_DETECTION_ID

    static final SimpleString HDR_DUPLICATE_DETECTION_ID

### HDR_LAST_VALUE_NAME

    static final SimpleString HDR_LAST_VALUE_NAME

### DEFAULT_TYPE

    static final byte DEFAULT_TYPE

See Also:
  Constant Field Values

### OBJECT_TYPE

    static final byte OBJECT_TYPE

See Also:
  Constant Field Values

### TEXT_TYPE

    static final byte TEXT_TYPE

See Also:
  Constant Field Values

### BYTES_TYPE

    static final byte BYTES_TYPE

See Also:
  Constant Field Values

### MAP_TYPE

    static final byte MAP_TYPE

See Also:
  Constant Field Values

### STREAM_TYPE

    static final byte STREAM_TYPE

See Also:
  Constant Field Values

Method Detail

### getMessageID

    long getMessageID()

  Returns the messageID.
  The messageID is set when the message is handled by the server.

### getUserID

    org.hornetq.utils.UUID getUserID()

  Returns the userID - this is an optional user specified UUID that can be set to identify the message and will be passed around with the message

  Returns:
    the user id

### setUserID

    void setUserID(org.hornetq.utils.UUID userID)

  Sets the user ID

  Parameters:
    `userID` -

### getAddress

    SimpleString getAddress()

  Returns the address this message is sent to.

### setAddress

    void setAddress(SimpleString address)

  Sets the address to send this message to.

  Parameters:
    `address` - address to send the message to

### getType

    byte getType()

  Returns this message type.

### isDurable

    boolean isDurable()

  Returns whether this message is durable or not.

### setDurable

    void setDurable(boolean durable)

  Sets whether this message is durable or not.

  Parameters:
    `durable` - `true` to flag this message as durable, `false` else

### getExpiration

    long getExpiration()

  Returns the expiration time of this message.

### isExpired

    boolean isExpired()

  Returns whether this message is expired or not.

### setExpiration

    void setExpiration(long expiration)

  Sets the expiration of this message.

  Parameters:
    `expiration` - expiration time

### getTimestamp

    long getTimestamp()

  Returns the message timestamp.
  The timestamp corresponds to the time this message was handled by a HornetQ server.

### setTimestamp

    void setTimestamp(long timestamp)

  Sets the message timestamp.

  Parameters:
    `timestamp` - timestamp

### getPriority

    byte getPriority()

  Returns the message priority. Values range from 0 (less priority) to 9 (more priority) inclusive.

### setPriority

    void setPriority(byte priority)

  Sets the message priority. Value must be between 0 and 9 inclusive.

  Parameters:
    `priority` - the new message priority

### getEncodeSize

    int getEncodeSize()

  Returns the size of the encoded message.

### isLargeMessage

    boolean isLargeMessage()

  Returns whether this message is a large message or a regular message.

### getBodyBuffer

    HornetQBuffer getBodyBuffer()

  Returns the message body as a HornetQBuffer

### getBodyBufferCopy

    HornetQBuffer getBodyBufferCopy()

  Returns a copy of the message body as a HornetQBuffer. Any modification of this buffer should not impact the underlying buffer.

### putBooleanProperty

    void putBooleanProperty(SimpleString key,
                            boolean value)

  Puts a boolean property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putBooleanProperty

    void putBooleanProperty(String key,
                            boolean value)

  See Also:
    `putBooleanProperty(SimpleString, boolean)`

### putByteProperty

    void putByteProperty(SimpleString key,
                         byte value)

  Puts a byte property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putByteProperty

    void putByteProperty(String key,
                         byte value)

  See Also:
    `putByteProperty(SimpleString, byte)`

### putBytesProperty

    void putBytesProperty(SimpleString key,
                          byte[] value)

  Puts a byte[] property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putBytesProperty

    void putBytesProperty(String key,
                          byte[] value)

  See Also:
    `putBytesProperty(SimpleString, byte[])`

### putShortProperty

    void putShortProperty(SimpleString key,
                          short value)

  Puts a short property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putShortProperty

    void putShortProperty(String key,
                          short value)

  See Also:
    `putShortProperty(SimpleString, short)`

### putIntProperty

    void putIntProperty(SimpleString key,
                        int value)

  Puts a int property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putIntProperty

    void putIntProperty(String key,
                        int value)

  See Also:
    `putIntProperty(SimpleString, int)`

### putLongProperty

    void putLongProperty(SimpleString key,
                         long value)

  Puts a long property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putLongProperty

    void putLongProperty(String key,
                         long value)

  See Also:
    `putLongProperty(SimpleString, long)`

### putFloatProperty

    void putFloatProperty(SimpleString key,
                          float value)

  Puts a float property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putFloatProperty

    void putFloatProperty(String key,
                          float value)

  See Also:
    `putFloatProperty(SimpleString, float)`

### putDoubleProperty

    void putDoubleProperty(SimpleString key,
                           double value)

  Puts a double property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putDoubleProperty

    void putDoubleProperty(String key,
                           double value)

  See Also:
    `putDoubleProperty(SimpleString, double)`

### putStringProperty

    void putStringProperty(SimpleString key,
                           SimpleString value)

  Puts a SimpleString property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putStringProperty

    void putStringProperty(String key,
                           String value)

  Puts a String property in this message.

  Parameters:
    `key` - property name
    `value` - property value

### putObjectProperty

    void putObjectProperty(SimpleString key,
                           Object value)
                           throws PropertyConversionException

  Puts an Object property in this message.
  Accepted types are:
  - Boolean
  - Byte
  - Short
  - Integer
  - Long
  - Float
  - Double
  - String
  - SimpleString
  Using any other type will throw a PropertyConversionException.

  Parameters:
    `key` - property name
    `value` - property value
  Throws:
    `PropertyConversionException` - if the value is not one of the accepted property types.

### putObjectProperty

    void putObjectProperty(String key,
                           Object value)
                           throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `putObjectProperty(SimpleString, Object)`

### removeProperty

    Object removeProperty(SimpleString key)

  Removes the property corresponding to the specified key.

  Parameters:
    `key` - property name
  Returns:
    the value corresponding to the specified key or @{code null}

### removeProperty

    Object removeProperty(String key)

  See Also:
    `removeProperty(SimpleString)`

### containsProperty

    boolean containsProperty(SimpleString key)

  Returns `true` if this message contains a property with the given key, `false` else.

  Parameters:
    `key` - property name

### containsProperty

    boolean containsProperty(String key)

  See Also:
    `containsProperty(SimpleString)`

### getBooleanProperty

    Boolean getBooleanProperty(SimpleString key)
                               throws PropertyConversionException

  Returns the property corresponding to the specified key as a Boolean.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Boolean

### getBooleanProperty

    Boolean getBooleanProperty(String key)
                               throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getBooleanProperty(SimpleString)`

### getByteProperty

    Byte getByteProperty(SimpleString key)
                         throws PropertyConversionException

  Returns the property corresponding to the specified key as a Byte.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Byte

### getByteProperty

    Byte getByteProperty(String key)
                         throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getByteProperty(SimpleString)`

### getDoubleProperty

    Double getDoubleProperty(SimpleString key)
                             throws PropertyConversionException

  Returns the property corresponding to the specified key as a Double.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Double

### getDoubleProperty

    Double getDoubleProperty(String key)
                             throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getDoubleProperty(SimpleString)`

### getIntProperty

    Integer getIntProperty(SimpleString key)
                           throws PropertyConversionException

  Returns the property corresponding to the specified key as an Integer.

  Throws:
    `PropertyConversionException` - if the value can not be converted to an Integer

### getIntProperty

    Integer getIntProperty(String key)
                           throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getIntProperty(SimpleString)`

### getLongProperty

    Long getLongProperty(SimpleString key)
                         throws PropertyConversionException

  Returns the property corresponding to the specified key as a Long.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Long

### getLongProperty

    Long getLongProperty(String key)
                         throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getLongProperty(SimpleString)`

### getObjectProperty

    Object getObjectProperty(SimpleString key)

  Returns the property corresponding to the specified key

### getObjectProperty

    Object getObjectProperty(String key)

  See Also:
    `getBooleanProperty(SimpleString)`

### getShortProperty

    Short getShortProperty(SimpleString key)
                           throws PropertyConversionException

  Returns the property corresponding to the specified key as a Short.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Short

### getShortProperty

    Short getShortProperty(String key)
                           throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getShortProperty(SimpleString)`

### getFloatProperty

    Float getFloatProperty(SimpleString key)
                           throws PropertyConversionException

  Returns the property corresponding to the specified key as a Float.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a Float

### getFloatProperty

    Float getFloatProperty(String key)
                           throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getFloatProperty(SimpleString)`

### getStringProperty

    String getStringProperty(SimpleString key)
                             throws PropertyConversionException

  Returns the property corresponding to the specified key as a String.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a String

### getStringProperty

    String getStringProperty(String key)
                             throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getStringProperty(SimpleString)`

### getSimpleStringProperty

    SimpleString getSimpleStringProperty(SimpleString key)
                                         throws PropertyConversionException

  Returns the property corresponding to the specified key as a SimpleString.

  Throws:
    `PropertyConversionException` - if the value can not be converted to a SimpleString

### getSimpleStringProperty

    SimpleString getSimpleStringProperty(String key)
                                         throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getSimpleStringProperty(SimpleString)`

### getBytesProperty

    byte[] getBytesProperty(SimpleString key)
                            throws PropertyConversionException

  Returns the property corresponding to the specified key as a byte[].

  Throws:
    `PropertyConversionException` - if the value can not be converted to a byte[]

### getBytesProperty

    byte[] getBytesProperty(String key)
                            throws PropertyConversionException

  Throws:
    `PropertyConversionException`
  See Also:
    `getBytesProperty(SimpleString)`

### getPropertyNames

    Set<SimpleString> getPropertyNames()

  Returns all the names of the properties for this message.

### toMap

    Map<String,Object> toMap()

  Returns:
    Returns the message in Map form, useful when encoding to JSON

Copyright © 2009 Red Hat Inc. All Rights Reserved.