Class JMSMapMessage

java.lang.Object
com.ibm.jakarta.jms.JMSMessage
com.ibm.jakarta.jms.JMSMapMessage
All Implemented Interfaces:
JmsMessage, jakarta.jms.MapMessage, jakarta.jms.Message, Serializable

public class JMSMapMessage extends JMSMessage implements jakarta.jms.MapMessage

JMSMapMessage is used to send a set of name/type/value triplets. The entries can be accessed sequentially or randomly by name. The order of the entries is undefined. It adds a map message body.

The primitive types can be read or written explicitly using methods for each type. They can also be read or written generically as objects. For example, the call
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 then be both read from and written to.

Map messages support the following conversion table. The marked cases are supported and the unmarked cases throw a JMSException. The String to primitive conversions might 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

To create a map message please call Session.createMapMessage(). Do not call the default constructor.

See Also:
  • Field Details

    • sccsid

      public static final String sccsid
      The SCCSID which is expanded when the file is extracted from CMVC
      See Also:
  • Constructor Details

    • JMSMapMessage

      public JMSMapMessage()
      Deprecated.

      To create a map message please call Session.createMapMessage().

      Do not call this default constructor.

  • Method Details

    • getBoolean

      public boolean getBoolean(String name) throws jakarta.jms.JMSException
      Gets the boolean value of the named key.
      Specified by:
      getBoolean in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the boolean value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getByte

      public byte getByte(String name) throws jakarta.jms.JMSException
      Gets the byte value of the named key.
      Specified by:
      getByte in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the byte value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getBytes

      public byte[] getBytes(String name) throws jakarta.jms.JMSException
      Gets the byte array value of the named key.
      Specified by:
      getBytes in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the byte array
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid.
    • getChar

      public char getChar(String name) throws jakarta.jms.JMSException
      Gets the Unicode char value of the named key.
      Specified by:
      getChar in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the char
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getDouble

      public double getDouble(String name) throws jakarta.jms.JMSException
      Gets the double value of the named key.
      Specified by:
      getDouble in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the double value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getFloat

      public float getFloat(String name) throws jakarta.jms.JMSException
      Gets the float value of the named key.
      Specified by:
      getFloat in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the float value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getInt

      public int getInt(String name) throws jakarta.jms.JMSException
      Gets the integer value of the named key.
      Specified by:
      getInt in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the integer value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getLong

      public long getLong(String name) throws jakarta.jms.JMSException
      Gets the long value of the named key.
      Specified by:
      getLong in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the long value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getMapNames

      public Enumeration<?> getMapNames() throws jakarta.jms.JMSException
      Gets an Enumeration of all the MapMessage's names.
      Specified by:
      getMapNames in interface jakarta.jms.MapMessage
      Returns:
      an enumeration of all the names in this MapMessage
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
    • getObject

      public Object getObject(String name) throws jakarta.jms.JMSException
      Gets the Java object with the given name.

      This method can be used to return, as a class instance, an object that had been stored in the Map with the equivalent setObject() method call, or its equivalent primitive setter method.

      Specified by:
      getObject in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the Java object
      Returns:
      a class which represents the object referred to by the given name. If there is no item by this name, a null value is returned.
      Throws:
      jakarta.jms.JMSException - if JMS fails to read message due to an internal error
    • getShort

      public short getShort(String name) throws jakarta.jms.JMSException
      Gets the short value of the named key.
      Specified by:
      getShort in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the short value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • getString

      public String getString(String name) throws jakarta.jms.JMSException
      Gets the String value of the named key.
      Specified by:
      getString in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the key
      Returns:
      the String value
      Throws:
      jakarta.jms.JMSException - if JMS fails to read the message due to an internal error
      jakarta.jms.MessageFormatException - if this type conversion is not valid
    • itemExists

      public boolean itemExists(String name) throws jakarta.jms.JMSException
      Checks whether an item exists in this MapMessage.
      Specified by:
      itemExists in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the item to test
      Returns:
      true if the item does exist
      Throws:
      jakarta.jms.JMSException - if a JMS error occurs
    • setBoolean

      public void setBoolean(String name, boolean value) throws jakarta.jms.JMSException
      Sets a boolean value with the given name in the map.
      Specified by:
      setBoolean in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the boolean
      value - the boolean value to set in the map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setByte

      public void setByte(String name, byte value) throws jakarta.jms.JMSException
      Sets a byte value with the given name in the map.
      Specified by:
      setByte in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the byte
      value - the byte value to set in the map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setBytes

      public void setBytes(String name, byte[] value) throws jakarta.jms.JMSException
      Sets a byte array with the given name in the map.
      Specified by:
      setBytes in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the array
      value - the byte array to set in the map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setBytes

      public void setBytes(String name, byte[] value, int offset, int length) throws jakarta.jms.JMSException
      Sets a portion of a byte array in the map with the given name.
      Specified by:
      setBytes in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the byte array
      value - the byte array to set in the Map
      offset - the initial offset within the byte array
      length - the number of bytes to use
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error.
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode.
    • setChar

      public void setChar(String name, char value) throws jakarta.jms.JMSException
      Sets a Unicode character with the given name in the map.
      Specified by:
      setChar in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the character
      value - the value to set in the Map.
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error.
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode.
    • setDouble

      public void setDouble(String name, double value) throws jakarta.jms.JMSException
      Sets a double value with the given name in the map.
      Specified by:
      setDouble in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the double
      value - the value to set in the Map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message is in read-only mode
    • setFloat

      public void setFloat(String name, float value) throws jakarta.jms.JMSException
      Sets a floating point value with the given name in the map.
      Specified by:
      setFloat in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the float
      value - the value to set in the map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setInt

      public void setInt(String name, int value) throws jakarta.jms.JMSException
      Sets an integer value with the given name in the map.
      Specified by:
      setInt in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the integer
      value - the value to set in the Map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setLong

      public void setLong(String name, long value) throws jakarta.jms.JMSException
      Sets a long value with the given name in the map.
      Specified by:
      setLong in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the long
      value - the value to set in the Map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setObject

      public void setObject(String name, Object value) throws jakarta.jms.JMSException
      Sets a Java object with the given name in the map.

      This method only works for the primitive object wrapper classes (Integer, Double, Long ...), String, and byte arrays.

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

      public void setShort(String name, short value) throws jakarta.jms.JMSException
      Sets a short value with the given name in the map.
      Specified by:
      setShort in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the short
      value - the short value to set in the map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode
    • setString

      public void setString(String name, String value) throws jakarta.jms.JMSException
      Sets a String value with the given name in the map.
      Specified by:
      setString in interface jakarta.jms.MapMessage
      Parameters:
      name - the name of the String
      value - the String value to set in the Map
      Throws:
      jakarta.jms.JMSException - if JMS fails to write the message due to an internal error
      jakarta.jms.MessageNotWriteableException - if the message in read-only mode