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.