javax.jms
Interface MapMessage
- All Superinterfaces:
- Message
- public interface MapMessage
- extends Message
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. Sincechar
does not support aString
conversion, attempting to read a null value as achar
must throw aNullPointerException
.
- Version:
- 1.1 February 2, 002
- Author:
- Mark Hapner, Rich Burridge
- See Also:
- Session.createMapMessage(), BytesMessage, Message, ObjectMessage, StreamMessage, TextMessage
Field Summary
Fields inherited from interface javax.jms.Message DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
Method Summary boolean getBoolean(String name)
Returns the boolean value with the specified name.byte getByte(String name)
Returns the byte value with the specified name.byte[] getBytes(String name)
Returns the byte array value with the specified name.char getChar(String name)
Returns the Unicode character value with the specified name.double getDouble(String name)
Returns the double value with the specified name.float getFloat(String name)
Returns the float value with the specified name.int getInt(String name)
Returns the int value with the specified name.long getLong(String name)
Returns the long value with the specified name.Enumeration getMapNames()
Returns an Enumeration of all the names in the MapMessage object.Object getObject(String name)
Returns the value of the object with the specified name.short getShort(String name)
Returns the short value with the specified name.String getString(String name)
Returns the String value with the specified name.boolean itemExists(String name)
Indicates whether an item exists in this MapMessage object.void setBoolean(String name, boolean value)
Sets a boolean value with the specified name into the Map.void setByte(String name, byte value)
Sets a byte value with the specified name into the Map.void setBytes(String name, byte[] value)
Sets a byte array value with the specified name into the Map.void setBytes(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(String name, char value)
Sets a Unicode character value with the specified name into the Map.void setDouble(String name, double value)
Sets a double value with the specified name into the Map.void setFloat(String name, float value)
Sets a float value with the specified name into the Map.void setInt(String name, int value)
Sets an int value with the specified name into the Map.void setLong(String name, long value)
Sets a long value with the specified name into the Map.void setObject(String name, Object value)
Sets an object value with the specified name into the Map.void setShort(String name, short value)
Sets a short value with the specified name into the Map.void setString(String name, String value)
Sets a String value with the specified name into the Map.
Method Detail getBoolean
public boolean getBoolean(String name) throws JMSException
- Returns the boolean value with the specified name.
- Parameters:
- name - the name of the boolean
- Returns:
- the boolean value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getByte
public byte getByte(String name) throws JMSException
- Returns the byte value with the specified name.
- Parameters:
- name - the name of the byte
- Returns:
- the byte value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getShort
public short getShort(String name) throws JMSException
- Returns the short value with the specified name.
- Parameters:
- name - the name of the short
- Returns:
- the short value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getChar
public char getChar(String name) throws JMSException
- Returns the Unicode character value with the specified name.
- Parameters:
- name - the name of the Unicode character
- Returns:
- the Unicode character value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getInt
public int getInt(String name) throws JMSException
- Returns the int value with the specified name.
- Parameters:
- name - the name of the int
- Returns:
- the int value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getLong
public long getLong(String name) throws JMSException
- Returns the long value with the specified name.
- Parameters:
- name - the name of the long
- Returns:
- the long value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getFloat
public float getFloat(String name) throws JMSException
- Returns the float value with the specified name.
- Parameters:
- name - the name of the float
- Returns:
- the float value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getDouble
public double getDouble(String name) throws JMSException
- Returns the double value with the specified name.
- Parameters:
- name - the name of the double
- Returns:
- the double value with the specified name
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getString
public String getString(String name) throws JMSException
- Returns the String value with the specified name.
- Parameters:
- name - the name of the String
- Returns:
- the String value with the specified name; if there is no item by this name, a null value is returned
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getBytes
public byte[] getBytes(String name) throws JMSException
- Returns the byte array value with the specified name.
- Parameters:
- name - the name of the byte array
- 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.
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
- MessageFormatException - if this type conversion is invalid.
getObject
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 - the name of the Java 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
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
getMapNames
public Enumeration getMapNames() throws JMSException
- Returns an Enumeration of all the names in the MapMessage object.
- Returns:
- an enumeration of all the names in this MapMessage
- Throws:
- JMSException - if the JMS provider fails to read the message due to some internal error.
setBoolean
public void setBoolean(String name, boolean value) throws JMSException
- Sets a boolean value with the specified name into the Map.
- Parameters:
- name - the name of the boolean
- value - the boolean value to set in the Map
- Throws:
- 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.
setByte
public void setByte(String name, byte value) throws JMSException
- Sets a byte value with the specified name into the Map.
- Parameters:
- name - the name of the byte
- value - the byte value to set in the Map
- Throws:
- 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.
setShort
public void setShort(String name, short value) throws JMSException
- Sets a short value with the specified name into the Map.
- Parameters:
- name - the name of the short
- value - the short value to set in the Map
- Throws:
- 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.
setChar
public void setChar(String name, char value) throws JMSException
- Sets a Unicode character value with the specified name into the Map.
- Parameters:
- name - the name of the Unicode character
- value - the Unicode character value to set in the Map
- Throws:
- 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.
setInt
public void setInt(String name, int value) throws JMSException
- Sets an int value with the specified name into the Map.
- Parameters:
- name - the name of the int
- value - the int value to set in the Map
- Throws:
- 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.
setLong
public void setLong(String name, long value) throws JMSException
- Sets a long value with the specified name into the Map.
- Parameters:
- name - the name of the long
- value - the long value to set in the Map
- Throws:
- 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.
setFloat
public void setFloat(String name, float value) throws JMSException
- Sets a float value with the specified name into the Map.
- Parameters:
- name - the name of the float
- value - the float value to set in the Map
- Throws:
- 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.
setDouble
public void setDouble(String name, double value) throws JMSException
- Sets a double value with the specified name into the Map.
- Parameters:
- name - the name of the double
- value - the double value to set in the Map
- Throws:
- 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.
setString
public void setString(String name, String value) throws JMSException
- Sets a String value with the specified name into the Map.
- Parameters:
- name - the name of the String
- value - the String value to set in the Map
- Throws:
- 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.
setBytes
public void setBytes(String name, byte[] value) throws JMSException
- Sets a byte array value with the specified name into the Map.
- Parameters:
- name - the name of the byte array
- value - 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
- Throws:
- JMSException - if the JMS provider fails to write the message due to some internal error.
- NullPointerException - if the name is null, or if the name is an empty string.
- MessageNotWriteableException - if the message is in read-only mode.
setBytes
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 - the name of the byte array
- value - the byte array value to set in the Map
- offset - the initial offset within the byte array
- length - the number of bytes to use
- Throws:
- 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.
setObject
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 - the name of the Java object
- value - the Java object value to set in the Map
- Throws:
- 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.
itemExists
public boolean itemExists(String name) throws JMSException
- Indicates whether an item exists in this MapMessage object.
- Parameters:
- name - the name of the item to test
- Returns:
- true if the item exists
- Throws:
- JMSException - if the JMS provider fails to determine if the item exists due to some internal error.
Submit a bug or featureCopyright 2003 Sun Microsystems, Inc. All rights reserved.