Top Description Fields Methods
javax.jms

public Interface MapMessage

extends Message
Imports
java.util.Enumeration

A MapMessage object is used to send a set of name-value pairs. The names are String objects, and the values are primitive data types in the Java programming language. The names must have a value that is not null, and not an empty string. The entries can be accessed sequentially or randomly by name. The order of the entries is undefined. MapMessage inherits from the Message interface and adds a message body that contains a Map.

The primitive types can be read or written explicitly using methods for each type. They may also be read or written generically as objects. For instance, a call to MapMessage.setInt("foo", 6) is equivalent to MapMessage.setObject("foo", new Integer(6)). Both forms are provided, because the explicit form is convenient for static programming, and the object form is needed when types are not known at compile time.

When a client receives a MapMessage, it is in read-only mode. If a client attempts to write to the message at this point, a MessageNotWriteableException is thrown. If clearBody is called, the message can now be both read from and written to.

MapMessage objects support the following conversion table. The marked cases must be supported. The unmarked cases must throw a JMSException. The String-to-primitive conversions may throw a runtime exception if the primitive's valueOf() method does not accept it as a valid String representation of the primitive.

A value written as the row type can be read as the column type.

|        | boolean byte short char int long float double String byte[]
|----------------------------------------------------------------------
|boolean |    X                                            X
|byte    |          X     X         X   X                  X
|short   |                X         X   X                  X
|char    |                     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
|----------------------------------------------------------------------

Attempting to read a null value as a primitive type must be treated as calling the primitive's corresponding valueOf(String) conversion method with a null value. Since char does not support a String conversion, attempting to read a null value as a char must throw a NullPointerException.

Since
JMS 1.0
Version
JMS 2.0
See Also
javax.jms.Session#createMapMessage(), javax.jms.BytesMessage, javax.jms.Message, javax.jms.ObjectMessage, javax.jms.StreamMessage, javax.jms.TextMessage

Field Summary

Inherited from javax.jms.Message:
DEFAULT_DELIVERY_DELAYDEFAULT_DELIVERY_MODEDEFAULT_PRIORITYDEFAULT_TIME_TO_LIVE

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

the boolean value with the specified name
getBoolean
(String
the name of the boolean
name
)

Returns the boolean value with the specified name.

public byte

Returns:

the byte value with the specified name
getByte
(String
the name of the byte
name
)

Returns the byte value with the specified name.

public byte[]

Returns:

a copy of the byte array value with the specified name; if there is no item by this name, a null value is returned.
getBytes
(String
the name of the byte array
name
)

Returns the byte array value with the specified name.

public char

Returns:

the Unicode character value with the specified name
getChar
(String
the name of the Unicode character
name
)

Returns the Unicode character value with the specified name.

public double

Returns:

the double value with the specified name
getDouble
(String
the name of the double
name
)

Returns the double value with the specified name.

public float

Returns:

the float value with the specified name
getFloat
(String
the name of the float
name
)

Returns the float value with the specified name.

public int

Returns:

the int value with the specified name
getInt
(String
the name of the int
name
)

Returns the int value with the specified name.

public long

Returns:

the long value with the specified name
getLong
(String
the name of the long
name
)

Returns the long value with the specified name.

public Enumeration<E>

Returns:

an enumeration of all the names in this MapMessage
getMapNames
()

Returns an Enumeration of all the names in the MapMessage object.

public Object

Returns:

a copy of the Java object value with the specified name, in objectified format (for example, if the object was set as an int, an Integer is returned); if there is no item by this name, a null value is returned
getObject
(String
the name of the Java object
name
)

Returns the value of the object with the specified name.

public short

Returns:

the short value with the specified name
getShort
(String
the name of the short
name
)

Returns the short value with the specified name.

public String

Returns:

the String value with the specified name; if there is no item by this name, a null value is returned
getString
(String
the name of the String
name
)

Returns the String value with the specified name.

public boolean

Returns:

true if the item exists
itemExists
(String
the name of the item to test
name
)

Indicates whether an item exists in this MapMessage object.

public void
setBoolean(String
the name of the boolean
name
,
boolean
the boolean value to set in the Map
value
)

Sets a boolean value with the specified name into the Map.

public void
setByte(String
the name of the byte
name
,
byte
the byte value to set in the Map
value
)

Sets a byte value with the specified name into the Map.

public void
setBytes(String
the name of the byte array
name
,
byte[]
the byte array value to set in the Map; the array is copied so that the value for name will not be altered by future modifications
value
)

Sets a byte array value with the specified name into the Map.

public void
setBytes(String
the name of the byte array
name
,
byte[]
the byte array value to set in the Map
value
,
int
the initial offset within the byte array
offset
,
int
the number of bytes to use
length
)

Sets a portion of the byte array value with the specified name into the Map.

public void
setChar(String
the name of the Unicode character
name
,
char
the Unicode character value to set in the Map
value
)

Sets a Unicode character value with the specified name into the Map.

public void
setDouble(String
the name of the double
name
,
double
the double value to set in the Map
value
)

Sets a double value with the specified name into the Map.

public void
setFloat(String
the name of the float
name
,
float
the float value to set in the Map
value
)

Sets a float value with the specified name into the Map.

public void
setInt(String
the name of the int
name
,
int
the int value to set in the Map
value
)

Sets an int value with the specified name into the Map.

public void
setLong(String
the name of the long
name
,
long
the long value to set in the Map
value
)

Sets a long value with the specified name into the Map.

public void
setObject(String
the name of the Java object
name
,
Object
the Java object value to set in the Map
value
)

Sets an object value with the specified name into the Map.

public void
setShort(String
the name of the short
name
,
short
the short value to set in the Map
value
)

Sets a short value with the specified name into the Map.

public void
setString(String
the name of the String
name
,
String
the String value to set in the Map
value
)

Sets a String value with the specified name into the Map.

Inherited from javax.jms.Message:
acknowledgeclearBodyclearPropertiesgetBodygetBooleanPropertygetBytePropertygetDoublePropertygetFloatPropertygetIntPropertygetJMSCorrelationIDgetJMSCorrelationIDAsBytesgetJMSDeliveryModegetJMSDeliveryTimegetJMSDestinationgetJMSExpirationgetJMSMessageIDgetJMSPrioritygetJMSRedeliveredgetJMSReplyTogetJMSTimestampgetJMSTypegetLongPropertygetObjectPropertygetPropertyNamesgetShortPropertygetStringPropertyisBodyAssignableTopropertyExistssetBooleanPropertysetBytePropertysetDoublePropertysetFloatPropertysetIntPropertysetJMSCorrelationIDsetJMSCorrelationIDAsBytessetJMSDeliveryModesetJMSDeliveryTimesetJMSDestinationsetJMSExpirationsetJMSMessageIDsetJMSPrioritysetJMSRedeliveredsetJMSReplyTosetJMSTimestampsetJMSTypesetLongPropertysetObjectPropertysetShortPropertysetStringProperty

Method Detail

getBooleanback to summary
public boolean getBoolean(String name) throws JMSException

Returns the boolean value with the specified name.

Parameters
name:String

the name of the boolean

Returns:boolean

the boolean value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getByteback to summary
public byte getByte(String name) throws JMSException

Returns the byte value with the specified name.

Parameters
name:String

the name of the byte

Returns:byte

the byte value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getBytesback to summary
public byte[] getBytes(String name) throws JMSException

Returns the byte array value with the specified name.

Parameters
name:String

the name of the byte array

Returns:byte[]

a copy of the byte array value with the specified name; if there is no item by this name, a null value is returned.

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getCharback to summary
public char getChar(String name) throws JMSException

Returns the Unicode character value with the specified name.

Parameters
name:String

the name of the Unicode character

Returns:char

the Unicode character value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getDoubleback to summary
public double getDouble(String name) throws JMSException

Returns the double value with the specified name.

Parameters
name:String

the name of the double

Returns:double

the double value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getFloatback to summary
public float getFloat(String name) throws JMSException

Returns the float value with the specified name.

Parameters
name:String

the name of the float

Returns:float

the float value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getIntback to summary
public int getInt(String name) throws JMSException

Returns the int value with the specified name.

Parameters
name:String

the name of the int

Returns:int

the int value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getLongback to summary
public long getLong(String name) throws JMSException

Returns the long value with the specified name.

Parameters
name:String

the name of the long

Returns:long

the long value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getMapNamesback to summary
public Enumeration<E> getMapNames() throws JMSException

Returns an Enumeration of all the names in the MapMessage object.

Returns:Enumeration<E>

an enumeration of all the names in this MapMessage

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
getObjectback to summary
public Object getObject(String name) throws JMSException

Returns the value of the object with the specified name.

This method can be used to return, in objectified format, an object in the Java programming language ("Java object") that had been stored in the Map with the equivalent setObject method call, or its equivalent primitive settype method.

Note that byte values are returned as byte[], not Byte[].

Parameters
name:String

the name of the Java object

Returns:Object

a copy of the Java object value with the specified name, in objectified format (for example, if the object was set as an int, an Integer is returned); if there is no item by this name, a null value is returned

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
getShortback to summary
public short getShort(String name) throws JMSException

Returns the short value with the specified name.

Parameters
name:String

the name of the short

Returns:short

the short value with the specified name

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
getStringback to summary
public String getString(String name) throws JMSException

Returns the String value with the specified name.

Parameters
name:String

the name of the String

Returns:String

the String value with the specified name; if there is no item by this name, a null value is returned

Exceptions
JMSException:
if the JMS provider fails to read the message due to some internal error.
MessageFormatException:
if this type conversion is invalid.
itemExistsback to summary
public boolean itemExists(String name) throws JMSException

Indicates whether an item exists in this MapMessage object.

Parameters
name:String

the name of the item to test

Returns:boolean

true if the item exists

Exceptions
JMSException:
if the JMS provider fails to determine if the item exists due to some internal error.
setBooleanback to summary
public void setBoolean(String name, boolean value) throws JMSException

Sets a boolean value with the specified name into the Map.

Parameters
name:String

the name of the boolean

value:boolean

the boolean value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setByteback to summary
public void setByte(String name, byte value) throws JMSException

Sets a byte value with the specified name into the Map.

Parameters
name:String

the name of the byte

value:byte

the byte value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setBytesback to summary
public void setBytes(String name, byte[] value) throws JMSException

Sets a byte array value with the specified name into the Map.

Parameters
name:String

the name of the byte array

value:byte[]

the byte array value to set in the Map; the array is copied so that the value for name will not be altered by future modifications

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null, or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setBytesback to summary
public void setBytes(String name, byte[] value, int offset, int length) throws JMSException

Sets a portion of the byte array value with the specified name into the Map.

Parameters
name:String

the name of the byte array

value:byte[]

the byte array value to set in the Map

offset:int

the initial offset within the byte array

length:int

the number of bytes to use

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setCharback to summary
public void setChar(String name, char value) throws JMSException

Sets a Unicode character value with the specified name into the Map.

Parameters
name:String

the name of the Unicode character

value:char

the Unicode character value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setDoubleback to summary
public void setDouble(String name, double value) throws JMSException

Sets a double value with the specified name into the Map.

Parameters
name:String

the name of the double

value:double

the double value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setFloatback to summary
public void setFloat(String name, float value) throws JMSException

Sets a float value with the specified name into the Map.

Parameters
name:String

the name of the float

value:float

the float value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setIntback to summary
public void setInt(String name, int value) throws JMSException

Sets an int value with the specified name into the Map.

Parameters
name:String

the name of the int

value:int

the int value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setLongback to summary
public void setLong(String name, long value) throws JMSException

Sets a long value with the specified name into the Map.

Parameters
name:String

the name of the long

value:long

the long value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setObjectback to summary
public void setObject(String name, Object value) throws JMSException

Sets an object value with the specified name into the Map.

This method works only for the objectified primitive object types (Integer, Double, Long ...), String objects, and byte arrays.

Parameters
name:String

the name of the Java object

value:Object

the Java object value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageFormatException:
if the object is invalid.
MessageNotWriteableException:
if the message is in read-only mode.
setShortback to summary
public void setShort(String name, short value) throws JMSException

Sets a short value with the specified name into the Map.

Parameters
name:String

the name of the short

value:short

the short value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.
setStringback to summary
public void setString(String name, String value) throws JMSException

Sets a String value with the specified name into the Map.

Parameters
name:String

the name of the String

value:String

the String value to set in the Map

Exceptions
JMSException:
if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException:
if the name is null or if the name is an empty string.
MessageNotWriteableException:
if the message is in read-only mode.