Websphere MQ Everyplace

com.ibm.mqe.jms
Class MQeMapMessage

java.lang.Object
  |
  +--com.ibm.mqe.jms.MQeMessage
        |
        +--com.ibm.mqe.jms.MQeMapMessage
All Implemented Interfaces:
javax.jms.MapMessage, javax.jms.Message

public class MQeMapMessage
extends MQeMessage
implements javax.jms.MapMessage

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 MQeMessage 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 MQeMessage.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      X
 |byte[]  |                                                        X
 |----------------------------------------------------------------------
 

See Also:
BytesMessage, Message, ObjectMessage, StreamMessage, TextMessage

Field Summary
 
Fields inherited from class com.ibm.mqe.jms.MQeMessage
DEFAULT_DELIVERY_MODE
 
Fields inherited from interface javax.jms.Message
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
 
Constructor Summary
MQeMapMessage()
           
 
Method Summary
 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 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 obj)
          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.
 
Methods inherited from class com.ibm.mqe.jms.MQeMessage
acknowledge, clearBody, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.jms.Message
acknowledge, clearBody, 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

MQeMapMessage

public MQeMapMessage()
Method Detail

getBoolean

public boolean getBoolean(java.lang.String name)
                   throws javax.jms.JMSException,
                          javax.jms.MessageFormatException
Return the boolean value with the given name.

Specified by:
getBoolean in interface javax.jms.MapMessage
Parameters:
name - the name of the boolean
Returns:
the boolean value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getByte

public byte getByte(java.lang.String name)
             throws javax.jms.JMSException,
                    javax.jms.MessageFormatException
Return the byte value with the given name.

Specified by:
getByte in interface javax.jms.MapMessage
Parameters:
name - the name of the byte
Returns:
the byte value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getShort

public short getShort(java.lang.String name)
               throws javax.jms.JMSException,
                      javax.jms.MessageFormatException
Return the short value with the given name.

Specified by:
getShort in interface javax.jms.MapMessage
Parameters:
name - the name of the short
Returns:
the short value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getChar

public char getChar(java.lang.String name)
             throws javax.jms.JMSException,
                    javax.jms.MessageFormatException
Return the Unicode character value with the given name.

Specified by:
getChar in interface javax.jms.MapMessage
Parameters:
name - the name of the Unicode character
Returns:
the Unicode character value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getInt

public int getInt(java.lang.String name)
           throws javax.jms.JMSException,
                  javax.jms.MessageFormatException
Return the integer value with the given name.

Specified by:
getInt in interface javax.jms.MapMessage
Parameters:
name - the name of the integer
Returns:
the integer value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getLong

public long getLong(java.lang.String name)
             throws javax.jms.JMSException,
                    javax.jms.MessageFormatException
Return the long value with the given name.

Specified by:
getLong in interface javax.jms.MapMessage
Parameters:
name - the name of the long
Returns:
the long value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getFloat

public float getFloat(java.lang.String name)
               throws javax.jms.JMSException,
                      javax.jms.MessageFormatException
Return the float value with the given name.

Specified by:
getFloat in interface javax.jms.MapMessage
Parameters:
name - the name of the float
Returns:
the float value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getDouble

public double getDouble(java.lang.String name)
                 throws javax.jms.JMSException,
                        javax.jms.MessageFormatException
Return the double value with the given name.

Specified by:
getDouble in interface javax.jms.MapMessage
Parameters:
name - the name of the double
Returns:
the double value with the given name.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getString

public java.lang.String getString(java.lang.String name)
                           throws javax.jms.JMSException
Return the String value with the given name.

Specified by:
getString in interface javax.jms.MapMessage
Parameters:
name - the name of the String
Returns:
the String value with the given name. If there is no item by this name, a null value is returned.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getBytes

public byte[] getBytes(java.lang.String name)
                throws javax.jms.JMSException,
                       javax.jms.MessageFormatException
Return the byte array value with the given name.

Specified by:
getBytes in interface javax.jms.MapMessage
Parameters:
name - the name of the byte array
Returns:
the byte array value with the given name. If there is no item by this name, a null value is returned.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
javax.jms.MessageFormatException - if this type conversion is invalid.

getObject

public java.lang.Object getObject(java.lang.String name)
                           throws javax.jms.JMSException
Return the Java object value with the given name. This method returns in objectified format either an object that had been stored in the Map with the equivalent setObject(java.lang.String, java.lang.Object) method call or it's equivalent primitive set method.

Specified by:
getObject in interface javax.jms.MapMessage
Parameters:
name - the name of the Java object
Returns:
the Java object value with the given name, in objectified format (ie. if it set as an int, then a Integer is returned). If there is no item by this name, a null value is returned.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.

getMapNames

public java.util.Enumeration getMapNames()
                                  throws javax.jms.JMSException
Return an Enumeration of all the Map message's names.

Specified by:
getMapNames in interface javax.jms.MapMessage
Returns:
an enumeration of all the names in this Map message.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.

setBoolean

public void setBoolean(java.lang.String name,
                       boolean value)
                throws javax.jms.JMSException
Set a boolean value with the given name, into the Map.

Specified by:
setBoolean in interface javax.jms.MapMessage
Parameters:
name - the name of the boolean
value - the boolean value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setByte

public void setByte(java.lang.String name,
                    byte value)
             throws javax.jms.JMSException
Set a byte value with the given name, into the Map.

Specified by:
setByte in interface javax.jms.MapMessage
Parameters:
name - the name of the byte
value - the byte value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setShort

public void setShort(java.lang.String name,
                     short value)
              throws javax.jms.JMSException
Set a short value with the given name, into the Map.

Specified by:
setShort in interface javax.jms.MapMessage
Parameters:
name - the name of the short
value - the short value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setChar

public void setChar(java.lang.String name,
                    char value)
             throws javax.jms.JMSException
Set a Unicode character value with the given name, into the Map.

Specified by:
setChar in interface javax.jms.MapMessage
Parameters:
name - the name of the Unicode character
value - the Unicode character value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setInt

public void setInt(java.lang.String name,
                   int value)
            throws javax.jms.JMSException
Set an integer value with the given name, into the Map.

Specified by:
setInt in interface javax.jms.MapMessage
Parameters:
name - the name of the integer
value - the integer value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setLong

public void setLong(java.lang.String name,
                    long value)
             throws javax.jms.JMSException
Set a long value with the given name, into the Map.

Specified by:
setLong in interface javax.jms.MapMessage
Parameters:
name - the name of the long
value - the long value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setFloat

public void setFloat(java.lang.String name,
                     float value)
              throws javax.jms.JMSException
Set a float value with the given name, into the Map.

Specified by:
setFloat in interface javax.jms.MapMessage
Parameters:
name - the name of the float
value - the float value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setDouble

public void setDouble(java.lang.String name,
                      double value)
               throws javax.jms.JMSException
Set a double value with the given name, into the Map.

Specified by:
setDouble in interface javax.jms.MapMessage
Parameters:
name - the name of the double
value - the double value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setString

public void setString(java.lang.String name,
                      java.lang.String value)
               throws javax.jms.JMSException
Set a String value with the given name, into the Map.

Specified by:
setString in interface javax.jms.MapMessage
Parameters:
name - the name of the String
value - the String value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setBytes

public void setBytes(java.lang.String name,
                     byte[] value)
              throws javax.jms.JMSException
Set a byte array value with the given name, into the Map.

Specified by:
setBytes in interface javax.jms.MapMessage
Parameters:
name - the name of the byte array
value - the byte array value to set in the Map.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setBytes

public void setBytes(java.lang.String name,
                     byte[] value,
                     int offset,
                     int length)
              throws javax.jms.JMSException
Set a portion of the byte array value with the given name, into the Map.

Specified by:
setBytes in interface javax.jms.MapMessage
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:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageNotWriteableException - if message in read-only mode.

setObject

public void setObject(java.lang.String name,
                      java.lang.Object obj)
               throws javax.jms.JMSException
Set a Java object value with the given name, into the Map. Note that this method only works for the objectified primitive object types (Integer, Double, Long ...), String's and byte arrays.

Specified by:
setObject in interface javax.jms.MapMessage
Parameters:
name - the name of the Java object
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
javax.jms.MessageFormatException - if object is invalid
javax.jms.MessageNotWriteableException - if message in read-only mode.

itemExists

public boolean itemExists(java.lang.String name)
                   throws javax.jms.JMSException
Check if an item exists in this MapMessage.

Specified by:
itemExists in interface javax.jms.MapMessage
Parameters:
name - the name of the item to test
Returns:
true if the item does exist.
Throws:
javax.jms.JMSException - if a JMS error occurs.

Websphere MQ Everyplace