AMapMessage
object is used to send a set of name-value pairs. The names areString
objects, and the values are primitive data types in the Java programming language. The entries can be accessed sequentially or randomly by name. The order of the entries is undefined.MapMessage
inherits from theMessage
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 toMapMessage.setInt("foo", 6)
is equivalent toMapMessage.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 aMapMessage
, it is in read-only mode. If a client attempts to write to the message at this point, aMessageNotWriteableException
is thrown. IfclearBody
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 aJMSException
. TheString
-to-primitive conversions may throw a runtime exception if the primitive'svalueOf()
method does not accept it as a validString
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 correspondingvalueOf(String)
conversion method with a null value. Sincechar
does not support aString
conversion, attempting to read a null value as achar
must throw aNullPointerException
.
Session.createMapMessage()
,BytesMessage
,Message
,ObjectMessage
,StreamMessage
,TextMessage
Fields inherited from interface javax.jms.Message |
DEFAULT_DELIVERY_MODE,DEFAULT_PRIORITY,DEFAULT_TIME_TO_LIVE |
getBoolean(java.lang.String name) Returns the boolean value with the specified name. | |
getByte(java.lang.String name) Returns the byte value with the specified name. | |
getBytes(java.lang.String name) Returns the byte array value with the specified name. | |
getChar(java.lang.String name) Returns the Unicode character value with the specified name. | |
getDouble(java.lang.String name) Returns the double value with the specified name. | |
getFloat(java.lang.String name) Returns the float value with the specified name. | |
getInt(java.lang.String name) Returns the int value with the specified name. | |
getLong(java.lang.String name) Returns the long value with the specified name. | |
getMapNames() Returns an Enumeration of all the names in theMapMessage object. | |
getObject(java.lang.String name) Returns the value of the object with the specified name. | |
getShort(java.lang.String name) Returns the short value with the specified name. | |
getString(java.lang.String name) Returns the String value with the specified name. | |
itemExists(java.lang.String name) Indicates whether an item exists in this MapMessage object. | |
setBoolean(java.lang.String name, boolean value) Sets a boolean value with the specified name into the Map. | |
setByte(java.lang.String name, byte value) Sets a byte value with the specified name into the Map. | |
setBytes(java.lang.String name, byte[] value) Sets a byte array value with the specified name into the Map. | |
setBytes(java.lang.String name, byte[] value, int offset, int length) Sets a portion of the byte array value with the specified name into the Map. | |
setChar(java.lang.String name, char value) Sets a Unicode character value with the specified name into the Map. | |
setDouble(java.lang.String name, double value) Sets a double value with the specified name into the Map. | |
setFloat(java.lang.String name, float value) Sets a float value with the specified name into the Map. | |
setInt(java.lang.String name, int value) Sets an int value with the specified name into the Map. | |
setLong(java.lang.String name, long value) Sets a long value with the specified name into the Map. | |
setObject(java.lang.String name, java.lang.Object value) Sets an object value with the specified name into the Map. | |
setShort(java.lang.String name, short value) Sets a short value with the specified name into the Map. | |
setString(java.lang.String name, java.lang.String value) Sets a String value with the specified name into the Map. |
public booleangetBoolean(java.lang.String name) throwsJMSException
boolean
value with the specified name.name
- the name of theboolean
boolean
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public bytegetByte(java.lang.String name) throwsJMSException
byte
value with the specified name.name
- the name of thebyte
byte
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public shortgetShort(java.lang.String name) throwsJMSException
short
value with the specified name.name
- the name of theshort
short
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public chargetChar(java.lang.String name) throwsJMSException
name
- the name of the Unicode characterJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public intgetInt(java.lang.String name) throwsJMSException
int
value with the specified name.name
- the name of theint
int
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public longgetLong(java.lang.String name) throwsJMSException
long
value with the specified name.name
- the name of thelong
long
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public floatgetFloat(java.lang.String name) throwsJMSException
float
value with the specified name.name
- the name of thefloat
float
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public doublegetDouble(java.lang.String name) throwsJMSException
double
value with the specified name.name
- the name of thedouble
double
value with the specified nameJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public java.lang.StringgetString(java.lang.String name) throwsJMSException
String
value with the specified name.name
- the name of theString
String
value with the specified name; if there is no item by this name, a null value is returnedJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public byte[]getBytes(java.lang.String name) throwsJMSException
name
- the name of the byte arrayJMSException
- if the JMS provider fails to read the message due to some internal error.MessageFormatException
- if this type conversion is invalid.public java.lang.ObjectgetObject(java.lang.String name) throwsJMSException
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 equivalentsetObject
method call, or its equivalent primitivesettype
method.
Note that byte values are returned asbyte[]
, notByte[]
.
name
- the name of the Java objectint
, anInteger
is returned); if there is no item by this name, a null value is returnedJMSException
- if the JMS provider fails to read the message due to some internal error.public java.util.EnumerationgetMapNames() throwsJMSException
Enumeration
of all the names in theMapMessage
object.MapMessage
JMSException
- if the JMS provider fails to read the message due to some internal error.public voidsetBoolean(java.lang.String name, boolean value) throwsJMSException
boolean
value with the specified name into the Map.name
- the name of theboolean
value
- theboolean
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetByte(java.lang.String name, byte value) throwsJMSException
byte
value with the specified name into the Map.name
- the name of thebyte
value
- thebyte
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetShort(java.lang.String name, short value) throwsJMSException
short
value with the specified name into the Map.name
- the name of theshort
value
- theshort
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetChar(java.lang.String name, char value) throwsJMSException
name
- the name of the Unicode charactervalue
- the Unicode character value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetInt(java.lang.String name, int value) throwsJMSException
int
value with the specified name into the Map.name
- the name of theint
value
- theint
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetLong(java.lang.String name, long value) throwsJMSException
long
value with the specified name into the Map.name
- the name of thelong
value
- thelong
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetFloat(java.lang.String name, float value) throwsJMSException
float
value with the specified name into the Map.name
- the name of thefloat
value
- thefloat
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetDouble(java.lang.String name, double value) throwsJMSException
double
value with the specified name into the Map.name
- the name of thedouble
value
- thedouble
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetString(java.lang.String name, java.lang.String value) throwsJMSException
String
value with the specified name into the Map.name
- the name of theString
value
- theString
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetBytes(java.lang.String name, byte[] value) throwsJMSException
name
- the name of the byte arrayvalue
- the byte array value to set in the Map; the array is copied so that the value forname
will not be altered by future modificationsJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetBytes(java.lang.String name, byte[] value, int offset, int length) throwsJMSException
name
- the name of the byte arrayvalue
- the byte array value to set in the Mapoffset
- the initial offset within the byte arraylength
- the number of bytes to useJMSException
- if the JMS provider fails to write the message due to some internal error.MessageNotWriteableException
- if the message is in read-only mode.public voidsetObject(java.lang.String name, java.lang.Object value) throwsJMSException
This method works only for the objectified primitive object types (Integer
,Double
,Long
...),String
objects, and byte arrays.
name
- the name of the Java objectvalue
- the Java object value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.MessageFormatException
- if the object is invalid.MessageNotWriteableException
- if the message is in read-only mode.public booleanitemExists(java.lang.String name) throwsJMSException
MapMessage
object.name
- the name of the item to testJMSException
- if the JMS provider fails to determine if the item exists due to some internal error.