|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.exolab.jms.message.MessageImpl | +--org.exolab.jms.message.MapMessageImpl
This class implements the MapMessage
interface.
A MapMessage is used to send a set of name-value pairs where names are
Strings and values are Java primitive types. The entries can be accessed
sequentially or randomly by name. The order of the entries is undefined.
It inherits from Message
and adds a map message body.
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.
Map messages 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
primitives 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 Java 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 NullPointerException.
MapMessage
, Serialized FormFields inherited from class org.exolab.jms.message.MessageImpl |
_acceptedTime, _bodyReadOnly, _connectionId, _processed, _propertiesReadOnly, _sequenceNumber, EMPTY |
Fields inherited from interface javax.jms.Message |
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE |
Constructor Summary | |
MapMessageImpl()
Construct a new MapMessage |
Method Summary | |
void |
clearBody()
Clear out the message body. |
java.lang.Object |
clone()
Clone an instance of this object |
boolean |
getBoolean(java.lang.String name)
Return the boolean value with the given name |
byte |
getByte(java.lang.String name)
Return the byte value with the given name |
byte[] |
getBytes(java.lang.String name)
Return the byte array value with the given name |
char |
getChar(java.lang.String name)
Return the Unicode character value with the given name |
double |
getDouble(java.lang.String name)
Return the double value with the given name |
float |
getFloat(java.lang.String name)
Return the float value with the given name |
int |
getInt(java.lang.String name)
Return the integer value with the given name |
long |
getLong(java.lang.String name)
Return the long value with the given name |
java.util.Enumeration |
getMapNames()
Return an Enumeration of all the Map message's names. |
java.lang.Object |
getObject(java.lang.String name)
Return the Java object value with the given name |
short |
getShort(java.lang.String name)
Return the short value with the given name |
java.lang.String |
getString(java.lang.String name)
Return the String value with the given name |
boolean |
itemExists(java.lang.String name)
Check if an item exists in this MapMessage |
void |
readExternal(java.io.ObjectInput in)
Serialize in this message's data |
void |
setBoolean(java.lang.String name,
boolean value)
Set a boolean value with the given name, into the Map |
void |
setByte(java.lang.String name,
byte value)
Set a byte value with the given name, into the Map |
void |
setBytes(java.lang.String name,
byte[] value)
Set a byte array value with the given name, into the Map |
void |
setBytes(java.lang.String name,
byte[] value,
int offset,
int length)
Set a portion of the byte array value with the given name, into the Map |
void |
setChar(java.lang.String name,
char value)
Set a Unicode character value with the given name, into the Map |
void |
setDouble(java.lang.String name,
double value)
Set a double value with the given name, into the Map |
void |
setFloat(java.lang.String name,
float value)
Set a float value with the given name, into the Map |
void |
setInt(java.lang.String name,
int value)
Set an integer value with the given name, into the Map |
void |
setLong(java.lang.String name,
long value)
Set a long value with the given name, into the Map |
void |
setObject(java.lang.String name,
java.lang.Object value)
Set a Java object value with the given name, into the Map |
void |
setShort(java.lang.String name,
short value)
Set a short value with the given name, into the Map |
void |
setString(java.lang.String name,
java.lang.String value)
Set a String value with the given name, into the Map |
void |
writeExternal(java.io.ObjectOutput out)
Serialize out this message's data |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.jms.Message |
acknowledge, clearProperties, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty |
Constructor Detail |
public MapMessageImpl() throws javax.jms.JMSException
javax.jms.JMSException
- if the message type can't be setMethod Detail |
public final java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class MessageImpl
java.lang.CloneNotSupportedException
- if object or attributes aren't
cloneablepublic final void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in class MessageImpl
out
- the stream to serialize out tojava.io.IOException
- if any I/O exceptions occurrpublic final void readExternal(java.io.ObjectInput in) throws java.lang.ClassNotFoundException, java.io.IOException
readExternal
in class MessageImpl
in
- the stream to serialize in fromjava.lang.ClassNotFoundException
- if the class for an object being
restored cannot be found.java.io.IOException
- if any I/O exceptions occurpublic final boolean getBoolean(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getBoolean
in interface javax.jms.MapMessage
name
- the name of the booleanjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final byte getByte(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getByte
in interface javax.jms.MapMessage
name
- the name of the bytejavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final short getShort(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getShort
in interface javax.jms.MapMessage
name
- the name of the shortjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final char getChar(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getChar
in interface javax.jms.MapMessage
name
- the name of the Unicode characterjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final int getInt(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getInt
in interface javax.jms.MapMessage
name
- the name of the integerjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final long getLong(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getLong
in interface javax.jms.MapMessage
name
- the name of the longjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final float getFloat(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getFloat
in interface javax.jms.MapMessage
name
- the name of the floatjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final double getDouble(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getDouble
in interface javax.jms.MapMessage
name
- the name of the doublejavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final java.lang.String getString(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getString
in interface javax.jms.MapMessage
name
- the name of the Stringjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final byte[] getBytes(java.lang.String name) throws javax.jms.JMSException, javax.jms.MessageFormatException
getBytes
in interface javax.jms.MapMessage
name
- the name of the byte arrayjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS errorjavax.jms.MessageFormatException
- if this type conversion is invalidpublic final java.lang.Object getObject(java.lang.String name) throws javax.jms.JMSException
Note that this method can be used to return in objectified format,
an object that had been stored in the Map with the equivalent
setObject
method call, or it's equivalent primitive
set
getObject
in interface javax.jms.MapMessage
name
- the name of the Java objectjavax.jms.JMSException
- if JMS fails to read the message due to some
internal JMS error
public final java.util.Enumeration getMapNames()
getMapNames
in interface javax.jms.MapMessage
public final void setBoolean(java.lang.String name, boolean value) throws javax.jms.MessageNotWriteableException
setBoolean
in interface javax.jms.MapMessage
name
- the name of the booleanvalue
- the boolean value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setByte(java.lang.String name, byte value) throws javax.jms.MessageNotWriteableException
setByte
in interface javax.jms.MapMessage
name
- the name of the bytevalue
- the byte value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setShort(java.lang.String name, short value) throws javax.jms.MessageNotWriteableException
setShort
in interface javax.jms.MapMessage
name
- the name of the shortvalue
- the short value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setChar(java.lang.String name, char value) throws javax.jms.MessageNotWriteableException
setChar
in interface javax.jms.MapMessage
name
- the name of the Unicode charactervalue
- the Unicode character value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setInt(java.lang.String name, int value) throws javax.jms.MessageNotWriteableException
setInt
in interface javax.jms.MapMessage
name
- the name of the integervalue
- the integer value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setLong(java.lang.String name, long value) throws javax.jms.MessageNotWriteableException
setLong
in interface javax.jms.MapMessage
name
- the name of the longvalue
- the long value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setFloat(java.lang.String name, float value) throws javax.jms.MessageNotWriteableException
setFloat
in interface javax.jms.MapMessage
name
- the name of the floatvalue
- the float value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setDouble(java.lang.String name, double value) throws javax.jms.MessageNotWriteableException
setDouble
in interface javax.jms.MapMessage
name
- the name of the doublevalue
- the double value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setString(java.lang.String name, java.lang.String value) throws javax.jms.MessageNotWriteableException
setString
in interface javax.jms.MapMessage
name
- the name of the Stringvalue
- the String value to set in the Mapjavax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setBytes(java.lang.String name, byte[] value) throws javax.jms.MessageNotWriteableException
setBytes
in interface javax.jms.MapMessage
name
- the name of the byte arrayvalue
- the byte array value to set in the Map. The array is
copied so the value for name will not be altered by future
modifications.javax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setBytes(java.lang.String name, byte[] value, int offset, int length) throws javax.jms.MessageNotWriteableException
setBytes
in interface javax.jms.MapMessage
name
- the name of the byte arrayvalue
- the byte array value to set in the Map.offset
- the initial offset within the byte array.length
- the number of bytes to use.javax.jms.MessageNotWriteableException
- if the message is in read-only modepublic final void setObject(java.lang.String name, java.lang.Object value) throws javax.jms.MessageFormatException, javax.jms.MessageNotWriteableException
Note that this method only works for the objectified primitive object types (Integer, Double, Long ...), String's and byte arrays.
setObject
in interface javax.jms.MapMessage
name
- the name of the Java objectvalue
- the Java object value to set in the Mapjavax.jms.MessageFormatException
- if object is invalidjavax.jms.MessageNotWriteableException
- if message in read-only mode.public final boolean itemExists(java.lang.String name)
itemExists
in interface javax.jms.MapMessage
name
- the name of the item to testpublic final void clearBody() throws javax.jms.JMSException
clearBody
in interface javax.jms.Message
clearBody
in class MessageImpl
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |