Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.activemq.message
Class ActiveMQMapMessage  view ActiveMQMapMessage download ActiveMQMapMessage.java

java.lang.Object
  extended byorg.activemq.message.AbstractPacket
      extended byorg.activemq.message.ActiveMQMessage
          extended byorg.activemq.message.ActiveMQMapMessage
All Implemented Interfaces:
BodyPacket, java.lang.Comparable, javax.jms.MapMessage, org.activemq.io.util.MemoryManageable, javax.jms.Message, Packet

public class ActiveMQMapMessage
extends ActiveMQMessage
implements javax.jms.MapMessage

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. Since char does not support a String conversion, attempting to read a null value as a char must throw a NullPointerException.


Field Summary
private  java.util.Map theTable
           
 
Fields inherited from class org.activemq.message.ActiveMQMessage
BOOLEAN, BROKER_NAME_INDEX, BYTE, BYTES, CACHED_DESTINATION_INDEX, CACHED_VALUES_INDEX, CHAR, CID_INDEX, CLUSTER_NAME_INDEX, CORRELATION_INDEX, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE, DISPATCHED_FROM_DLQ_INDEX, DOUBLE, EOF, EXPIRATION_INDEX, EXTERNAL_MESSAGE_ID_INDEX, FLOAT, INT, LONG, LONG_SEQUENCE_INDEX, MESSAGE_PART_INDEX, NULL, PAYLOAD_INDEX, PROPERTIES_INDEX, readOnlyMessage, REDELIVERED_INDEX, REPLY_TO_INDEX, SHORT, STRING, TIMESTAMP_INDEX, TRANSACTION_ID_INDEX, TYPE_INDEX, XA_TRANS_INDEX
 
Fields inherited from class org.activemq.message.AbstractPacket
bitArray, BROKERS_VISITED_INDEX, cachedHashCode, RECEIPT_REQUIRED_INDEX
 
Fields inherited from interface javax.jms.Message
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
 
Fields inherited from interface org.activemq.message.Packet
ACTIVEMQ_BROKER_INFO, ACTIVEMQ_BYTES_MESSAGE, ACTIVEMQ_CONNECTION_INFO, ACTIVEMQ_MAP_MESSAGE, ACTIVEMQ_MESSAGE, ACTIVEMQ_MSG_ACK, ACTIVEMQ_OBJECT_MESSAGE, ACTIVEMQ_STREAM_MESSAGE, ACTIVEMQ_TEXT_MESSAGE, BROKER_ADMIN_COMMAND, CACHED_VALUE_COMMAND, CAPACITY_INFO, CAPACITY_INFO_REQUEST, CLEANUP_CONNECTION_INFO, CONSUMER_INFO, DURABLE_UNSUBSCRIBE, INT_RESPONSE_RECEIPT_INFO, KEEP_ALIVE, NOT_SET, PRODUCER_INFO, RECEIPT_INFO, RESPONSE_RECEIPT_INFO, SESSION_INFO, TRANSACTION_INFO, WIRE_FORMAT_INFO, XA_TRANSACTION_INFO
 
Constructor Summary
ActiveMQMapMessage()
           
 
Method Summary
 void clearBody()
          Clears out the message body.
 ActiveMQMessage deepCopy()
           
 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.
 int getPacketType()
          Return the type of Packet
 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.
 java.util.Map getTable()
           
private  void initializeWriting()
           
 boolean itemExists(java.lang.String name)
          Indicates whether an item exists in this MapMessage object.
protected  void put(java.lang.String name, java.lang.Object value)
           
 void readBody(java.io.DataInput dataIn)
          Used to help build the body from an input stream
 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.
 void setTable(java.util.Map newTable)
          set the table body
 ActiveMQMessage shallowCopy()
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 void writeBody(java.io.DataOutput dataOut)
          Used serialize the message body to an output stream
 
Methods inherited from class org.activemq.message.ActiveMQMessage
acknowledge, buildBodyFromBytes, clearProperties, compareTo, compareTo, convertBodyToBytes, equals, getBodyAsBytes, getBodyAsBytes, getBooleanProperty, getByteProperty, getConsumerIdentifer, getConsumerNos, getConsumerNosAsString, getDeliveryCount, getDoubleProperty, getEntryBrokerName, getEntryClusterName, getFloatProperty, getIntProperty, getJMSActiveMQDestination, getJMSClientID, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSMessageIdentity, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getMemoryId, getMessageAcknowledge, getMesssageHandle, getNumberOfParts, getObjectProperty, getParentMessageID, getPartNumber, getPriority, getProducerKey, getProperties, getPropertyNames, getReservedProperty, getSequenceNumber, getShortProperty, getStringProperty, getTransactionId, getTransactionIDString, getVanillaProperty, hashCode, incrementDeliveryCount, incrementRedeliveryCount, initializeOther, isAdvisory, isBodyConvertedToBytes, isConsumerTarget, isDispatchedFromDLQ, isEntryBroker, isEntryCluster, isExpired, isExpired, isExternalMessageId, isJMSMessage, isLastMessagePart, isMessageConsumed, isMessagePart, isPartOfTransaction, isPersistent, isTemporary, isTransientConsumed, isXaTransacted, prepareMessageBody, propertyExists, readMapProperties, resetMessagePart, setBodyAsBytes, setBodyAsBytes, setBooleanProperty, setByteProperty, setConsumerIdentifer, setConsumerNos, setConsumerNosAsString, setDeliveryCount, setDispatchedFromDLQ, setDoubleProperty, setEntryBrokerName, setEntryClusterName, setExternalMessageId, setFloatProperty, setIntProperty, setJMSClientID, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSMessageIdentity, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setMessageAcknowledge, setMessageConsumed, setMessagePart, setMesssageHandle, setNumberOfParts, setObjectProperty, setParentMessageID, setPartNumber, setProducerKey, setProperties, setReadOnly, setSequenceNumber, setShortProperty, setStringProperty, setTransactionId, setTransactionIDString, setTransientConsumed, toString, vanillaToBoolean, vanillaToByte, vanillaToDouble, vanillaToFloat, vanillaToInt, vanillaToLong, vanillaToShort, vanillaToString, writeMapProperties
 
Methods inherited from class org.activemq.message.AbstractPacket
addBrokerVisited, clearBrokersVisited, decrementMemoryReferenceCount, equals, getBitArray, getBrokersVisited, getBrokersVisitedAsString, getId, getMemoryUsage, getMemoryUsageReferenceCount, getPacketTypeAsString, hasVisited, incrementMemoryReferenceCount, initializeBrokersVisited, initializeOther, isReceipt, isReceiptRequired, setBitArray, setBrokersVisitedAsString, setId, setMemoryUsage, setReceiptRequired
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, 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
 
Methods inherited from interface org.activemq.io.util.MemoryManageable
decrementMemoryReferenceCount, getMemoryUsage, getMemoryUsageReferenceCount, incrementMemoryReferenceCount
 

Field Detail

theTable

private java.util.Map theTable
Constructor Detail

ActiveMQMapMessage

public ActiveMQMapMessage()
Method Detail

getPacketType

public int getPacketType()
Return the type of Packet

Specified by:
getPacketType in interface Packet
Overrides:
getPacketType in class ActiveMQMessage

shallowCopy

public ActiveMQMessage shallowCopy()
                            throws javax.jms.JMSException
Overrides:
shallowCopy in class ActiveMQMessage

deepCopy

public ActiveMQMessage deepCopy()
                         throws javax.jms.JMSException
Overrides:
deepCopy in class ActiveMQMessage

setTable

public void setTable(java.util.Map newTable)
set the table body


getTable

public java.util.Map getTable()
                       throws javax.jms.JMSException

clearBody

public void clearBody()
               throws javax.jms.JMSException
Clears out the message body. Clearing a message's body does not clear its header values or property entries.

If this message body was read-only, calling this method leaves the message body in the same state as an empty body in a newly created message.

Specified by:
clearBody in interface javax.jms.Message
Overrides:
clearBody in class ActiveMQMessage

getBoolean

public boolean getBoolean(java.lang.String name)
                   throws javax.jms.JMSException
Returns the boolean value with the specified name.

Specified by:
getBoolean in interface javax.jms.MapMessage

getByte

public byte getByte(java.lang.String name)
             throws javax.jms.JMSException
Returns the byte value with the specified name.

Specified by:
getByte in interface javax.jms.MapMessage

getShort

public short getShort(java.lang.String name)
               throws javax.jms.JMSException
Returns the short value with the specified name.

Specified by:
getShort in interface javax.jms.MapMessage

getChar

public char getChar(java.lang.String name)
             throws javax.jms.JMSException
Returns the Unicode character value with the specified name.

Specified by:
getChar in interface javax.jms.MapMessage

getInt

public int getInt(java.lang.String name)
           throws javax.jms.JMSException
Returns the int value with the specified name.

Specified by:
getInt in interface javax.jms.MapMessage

getLong

public long getLong(java.lang.String name)
             throws javax.jms.JMSException
Returns the long value with the specified name.

Specified by:
getLong in interface javax.jms.MapMessage

getFloat

public float getFloat(java.lang.String name)
               throws javax.jms.JMSException
Returns the float value with the specified name.

Specified by:
getFloat in interface javax.jms.MapMessage

getDouble

public double getDouble(java.lang.String name)
                 throws javax.jms.JMSException
Returns the double value with the specified name.

Specified by:
getDouble in interface javax.jms.MapMessage

getString

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

Specified by:
getString in interface javax.jms.MapMessage

getBytes

public byte[] getBytes(java.lang.String name)
                throws javax.jms.JMSException
Returns the byte array value with the specified name.

Specified by:
getBytes in interface javax.jms.MapMessage

getObject

public java.lang.Object getObject(java.lang.String name)
                           throws javax.jms.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 set type method.

Note that byte values are returned as byte[], not Byte[].

Specified by:
getObject in interface javax.jms.MapMessage

getMapNames

public java.util.Enumeration getMapNames()
                                  throws javax.jms.JMSException
Returns an Enumeration of all the names in the MapMessage object.

Specified by:
getMapNames in interface javax.jms.MapMessage

put

protected void put(java.lang.String name,
                   java.lang.Object value)
            throws javax.jms.JMSException

setBoolean

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

Specified by:
setBoolean in interface javax.jms.MapMessage

setByte

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

Specified by:
setByte in interface javax.jms.MapMessage

setShort

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

Specified by:
setShort in interface javax.jms.MapMessage

setChar

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

Specified by:
setChar in interface javax.jms.MapMessage

setInt

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

Specified by:
setInt in interface javax.jms.MapMessage

setLong

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

Specified by:
setLong in interface javax.jms.MapMessage

setFloat

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

Specified by:
setFloat in interface javax.jms.MapMessage

setDouble

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

Specified by:
setDouble in interface javax.jms.MapMessage

setString

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

Specified by:
setString in interface javax.jms.MapMessage

setBytes

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

Specified by:
setBytes in interface javax.jms.MapMessage

setBytes

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

Specified by:
setBytes in interface javax.jms.MapMessage

setObject

public void setObject(java.lang.String name,
                      java.lang.Object value)
               throws javax.jms.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.

Specified by:
setObject in interface javax.jms.MapMessage

writeBody

public void writeBody(java.io.DataOutput dataOut)
               throws java.io.IOException
Description copied from class: ActiveMQMessage
Used serialize the message body to an output stream

Specified by:
writeBody in interface BodyPacket
Overrides:
writeBody in class ActiveMQMessage

readBody

public void readBody(java.io.DataInput dataIn)
              throws java.io.IOException
Description copied from class: ActiveMQMessage
Used to help build the body from an input stream

Specified by:
readBody in interface BodyPacket
Overrides:
readBody in class ActiveMQMessage

itemExists

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

Specified by:
itemExists in interface javax.jms.MapMessage

initializeWriting

private void initializeWriting()
                        throws javax.jms.MessageNotWriteableException

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).

Overrides:
toString in class ActiveMQMessage