public interface MapMessage extends Message
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
.
Session.createMapMessage()
,
BytesMessage
,
Message
,
ObjectMessage
,
StreamMessage
,
TextMessage
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
Modifier and Type | Method and Description |
---|---|
boolean |
getBoolean(java.lang.String name)
Returns the
boolean value with the specified name. |
byte |
getByte(java.lang.String name)
Returns the
byte value with the specified name. |
byte[] |
getBytes(java.lang.String name)
Returns the byte array value with the specified name.
|
char |
getChar(java.lang.String name)
Returns the Unicode character value with the specified name.
|
double |
getDouble(java.lang.String name)
Returns the
double value with the specified name. |
float |
getFloat(java.lang.String name)
Returns the
float value with the specified name. |
int |
getInt(java.lang.String name)
Returns the
int value with the specified name. |
long |
getLong(java.lang.String name)
Returns the
long value with the specified name. |
java.util.Enumeration |
getMapNames()
Returns an
Enumeration of all the names in the MapMessage object. |
java.lang.Object |
getObject(java.lang.String name)
Returns the value of the object with the specified name.
|
short |
getShort(java.lang.String name)
Returns the
short value with the specified name. |
java.lang.String |
getString(java.lang.String name)
Returns the
String value with the specified name. |
boolean |
itemExists(java.lang.String name)
Indicates whether an item exists in this
MapMessage object. |
void |
setBoolean(java.lang.String name,
boolean value)
Sets a
boolean value with the specified name into the Map. |
void |
setByte(java.lang.String name,
byte value)
Sets a
byte value with the specified name into the Map. |
void |
setBytes(java.lang.String name,
byte[] value)
Sets a byte array value with the specified name into the Map.
|
void |
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.
|
void |
setChar(java.lang.String name,
char value)
Sets a Unicode character value with the specified name into the Map.
|
void |
setDouble(java.lang.String name,
double value)
Sets a
double value with the specified name into the Map. |
void |
setFloat(java.lang.String name,
float value)
Sets a
float value with the specified name into the Map. |
void |
setInt(java.lang.String name,
int value)
Sets an
int value with the specified name into the Map. |
void |
setLong(java.lang.String name,
long value)
Sets a
long value with the specified name into the Map. |
void |
setObject(java.lang.String name,
java.lang.Object value)
Sets an object value with the specified name into the Map.
|
void |
setShort(java.lang.String name,
short value)
Sets a
short value with the specified name into the Map. |
void |
setString(java.lang.String name,
java.lang.String value)
Sets a
String value with the specified name into the Map. |
acknowledge, clearBody, clearProperties, getBody, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, isBodyAssignableTo, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty
boolean getBoolean(java.lang.String name) throws JMSException
boolean
value with the specified name.name
- the name of the boolean
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.byte getByte(java.lang.String name) throws JMSException
byte
value with the specified name.name
- the name of the byte
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.short getShort(java.lang.String name) throws JMSException
short
value with the specified name.name
- the name of the short
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.char getChar(java.lang.String name) throws JMSException
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.int getInt(java.lang.String name) throws JMSException
int
value with the specified name.name
- the name of the int
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.long getLong(java.lang.String name) throws JMSException
long
value with the specified name.name
- the name of the long
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.float getFloat(java.lang.String name) throws JMSException
float
value with the specified name.name
- the name of the float
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.double getDouble(java.lang.String name) throws JMSException
double
value with the specified name.name
- the name of the double
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.java.lang.String getString(java.lang.String name) throws JMSException
String
value with the specified name.name
- the name of the String
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.byte[] getBytes(java.lang.String name) throws JMSException
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.java.lang.Object getObject(java.lang.String name) throws JMSException
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[]
.
name
- the name of the Java objectint
, an Integer
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.java.util.Enumeration getMapNames() throws JMSException
Enumeration
of all the names in the MapMessage
object.MapMessage
JMSException
- if the JMS provider fails to read the message due to some internal error.void setBoolean(java.lang.String name, boolean value) throws JMSException
boolean
value with the specified name into the Map.name
- the name of the boolean
value
- the boolean
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setByte(java.lang.String name, byte value) throws JMSException
byte
value with the specified name into the Map.name
- the name of the byte
value
- the byte
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setShort(java.lang.String name, short value) throws JMSException
short
value with the specified name into the Map.name
- the name of the short
value
- the short
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setChar(java.lang.String name, char value) throws JMSException
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.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setInt(java.lang.String name, int value) throws JMSException
int
value with the specified name into the Map.name
- the name of the int
value
- the int
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setLong(java.lang.String name, long value) throws JMSException
long
value with the specified name into the Map.name
- the name of the long
value
- the long
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setFloat(java.lang.String name, float value) throws JMSException
float
value with the specified name into the Map.name
- the name of the float
value
- the float
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setDouble(java.lang.String name, double value) throws JMSException
double
value with the specified name into the Map.name
- the name of the double
value
- the double
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setString(java.lang.String name, java.lang.String value) throws JMSException
String
value with the specified name into the Map.name
- the name of the String
value
- the String
value to set in the MapJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setBytes(java.lang.String name, byte[] value) throws JMSException
name
- the name of the byte arrayvalue
- 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 modificationsJMSException
- if the JMS provider fails to write the message due to some internal error.java.lang.IllegalArgumentException
- if the name is null, or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setBytes(java.lang.String name, byte[] value, int offset, int length) throws JMSException
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.java.lang.IllegalArgumentException
- if the name is null or if the name is an empty string.MessageNotWriteableException
- if the message is in read-only mode.void setObject(java.lang.String name, java.lang.Object value) throws JMSException
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.java.lang.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.boolean itemExists(java.lang.String name) throws JMSException
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.