Class ActiveMQMapMessage
- java.lang.Object
-
- org.apache.activemq.command.BaseCommand
-
- org.apache.activemq.command.Message
-
- org.apache.activemq.command.ActiveMQMessage
-
- org.apache.activemq.command.ActiveMQMapMessage
-
- All Implemented Interfaces:
MapMessage,Message,MessageReference,Command,DataStructure,MarshallAware,Message,ScheduledMessage
public class ActiveMQMapMessage extends ActiveMQMessage implements MapMessage
AMapMessageobject is used to send a set of name-value pairs. The names areStringobjects, 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.MapMessageinherits from theMessageinterface 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 toMapMessage.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, aMessageNotWriteableExceptionis thrown. IfclearBodyis called, the message can now be both read from and written to.MapMessageobjects support the following conversion table. The marked cases must be supported. The unmarked cases must throw aJMSException. TheString-to-primitive conversions may throw a runtime exception if the primitive'svalueOf()method does not accept it as a validStringrepresentation 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 |---------------------------------------------------------------------- <p/>
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. Sincechardoes not support aStringconversion, attempting to read a null value as acharmust throw aNullPointerException.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.activemq.command.Message
Message.MessageDestination
-
-
Field Summary
Fields Modifier and Type Field Description static byteDATA_STRUCTURE_TYPEprotected Map<String,Object>map-
Fields inherited from class org.apache.activemq.command.ActiveMQMessage
acknowledgeCallback, BROKER_PATH_PROPERTY, DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY
-
Fields inherited from class org.apache.activemq.command.Message
arrival, brokerInTime, brokerOutTime, compressed, content, correlationId, dataStructure, DEFAULT_MINIMUM_MESSAGE_SIZE, destination, droppable, expiration, groupID, groupSequence, jmsXGroupFirstForConsumer, marshalledProperties, messageId, ORIGINAL_EXPIRATION, originalDestination, originalTransactionId, persistent, priority, producerId, properties, readOnlyBody, readOnlyProperties, recievedByDFBridge, redeliveryCounter, replyTo, size, targetConsumerId, timestamp, transactionId, type, userID
-
Fields inherited from class org.apache.activemq.command.BaseCommand
commandId, responseRequired
-
Fields inherited from interface javax.jms.Message
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
-
Fields inherited from interface org.apache.activemq.ScheduledMessage
AMQ_SCHEDULED_CRON, AMQ_SCHEDULED_DELAY, AMQ_SCHEDULED_ID, AMQ_SCHEDULED_PERIOD, AMQ_SCHEDULED_REPEAT, AMQ_SCHEDULER_ACTION, AMQ_SCHEDULER_ACTION_BROWSE, AMQ_SCHEDULER_ACTION_END_TIME, AMQ_SCHEDULER_ACTION_REMOVE, AMQ_SCHEDULER_ACTION_REMOVEALL, AMQ_SCHEDULER_ACTION_START_TIME, AMQ_SCHEDULER_MANAGEMENT_DESTINATION
-
-
Constructor Summary
Constructors Constructor Description ActiveMQMapMessage()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbeforeMarshall(WireFormat wireFormat)voidclearBody()Clears out the message body.voidclearUnMarshalledState()voidcompress()Messagecopy()booleangetBoolean(String name)Returns thebooleanvalue with the specified name.bytegetByte(String name)Returns thebytevalue with the specified name.byte[]getBytes(String name)Returns the byte array value with the specified name.chargetChar(String name)Returns the Unicode character value with the specified name.Map<String,Object>getContentMap()bytegetDataStructureType()doublegetDouble(String name)Returns thedoublevalue with the specified name.floatgetFloat(String name)Returns thefloatvalue with the specified name.intgetInt(String name)Returns theintvalue with the specified name.StringgetJMSXMimeType()Returns the MIME type of this mesage.longgetLong(String name)Returns thelongvalue with the specified name.Enumeration<String>getMapNames()Returns anEnumerationof all the names in theMapMessageobject.ObjectgetObject(String name)Returns the value of the object with the specified name.shortgetShort(String name)Returns theshortvalue with the specified name.StringgetString(String name)Returns theStringvalue with the specified name.booleanisContentMarshalled()booleanitemExists(String name)Indicates whether an item exists in thisMapMessageobject.protected voidput(String name, Object value)voidsetBoolean(String name, boolean value)Sets abooleanvalue with the specified name into the Map.voidsetByte(String name, byte value)Sets abytevalue with the specified name into the Map.voidsetBytes(String name, byte[] value)Sets a byte array value with the specified name into the Map.voidsetBytes(String name, byte[] value, int offset, int length)Sets a portion of the byte array value with the specified name into the Map.voidsetChar(String name, char value)Sets a Unicode character value with the specified name into the Map.voidsetDouble(String name, double value)Sets adoublevalue with the specified name into the Map.voidsetFloat(String name, float value)Sets afloatvalue with the specified name into the Map.voidsetInt(String name, int value)Sets anintvalue with the specified name into the Map.voidsetLong(String name, long value)Sets alongvalue with the specified name into the Map.voidsetObject(String name, Object value)Sets an object value with the specified name into the Map.voidsetShort(String name, short value)Sets ashortvalue with the specified name into the Map.voidsetString(String name, String value)Sets aStringvalue with the specified name into the Map.voidstoreContent()voidstoreContentAndClear()StringtoString()-
Methods inherited from class org.apache.activemq.command.ActiveMQMessage
acknowledge, checkReadOnlyBody, checkReadOnlyProperties, checkValidObject, clearProperties, convertScheduled, copy, decodeString, encodeString, equals, getAcknowledgeCallback, getAllPropertyNames, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, hashCode, onSend, propertyExists, setAcknowledgeCallback, setBooleanProperty, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setObjectProperty, setProperties, setShortProperty, setStringProperty, visit
-
Methods inherited from class org.apache.activemq.command.Message
afterMarshall, afterUnmarshall, beforeUnmarshall, canProcessAsExpired, copy, decrementReferenceCount, doCompress, getArrival, getBrokerInTime, getBrokerOutTime, getBrokerPath, getCluster, getConnection, getContent, getCorrelationId, getDataStructure, getDestination, getExpiration, getGroupID, getGroupSequence, getMarshalledProperties, getMemoryUsage, getMessage, getMessageHardRef, getMessageId, getMinimumMessageSize, getOriginalDestination, getOriginalTransactionId, getPriority, getProducerId, getProperties, getProperty, getRedeliveryCounter, getReferenceCount, getRegionDestination, getReplyTo, getSize, getTargetConsumerId, getTimestamp, getTransactionId, getType, getUserID, incrementRedeliveryCounter, incrementReferenceCount, isAdvisory, isCompressed, isDroppable, isDropped, isExpired, isInTransaction, isJMSXGroupFirstForConsumer, isMarshallAware, isMarshalled, isMessage, isPersistent, isPropertiesMarshalled, isReadOnlyBody, isReadOnlyProperties, isRecievedByDFBridge, isRedelivered, lazyCreateProperties, onMessageRolledBack, removeProperty, setArrival, setBrokerInTime, setBrokerOutTime, setBrokerPath, setCluster, setCompressed, setConnection, setContent, setCorrelationId, setDataStructure, setDestination, setDroppable, setExpiration, setGroupID, setGroupSequence, setJMSXGroupFirstForConsumer, setMarshalledProperties, setMemoryUsage, setMessageId, setOriginalDestination, setOriginalTransactionId, setPersistent, setPriority, setProducerId, setProperty, setReadOnlyBody, setReadOnlyProperties, setRecievedByDFBridge, setRedelivered, setRedeliveryCounter, setRegionDestination, setReplyTo, setTargetConsumerId, setTimestamp, setTransactionId, setType, setUserID, toString
-
Methods inherited from class org.apache.activemq.command.BaseCommand
copy, getCommandId, getFrom, getTo, isBrokerInfo, isConnectionControl, isConsumerControl, isMessageAck, isMessageDispatch, isMessageDispatchNotification, isResponse, isResponseRequired, isShutdownInfo, isWireFormatInfo, setCommandId, setFrom, setResponseRequired, setTo
-
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
-
-
-
-
Field Detail
-
DATA_STRUCTURE_TYPE
public static final byte DATA_STRUCTURE_TYPE
- See Also:
- Constant Field Values
-
-
Method Detail
-
copy
public Message copy()
- Overrides:
copyin classActiveMQMessage
-
beforeMarshall
public void beforeMarshall(WireFormat wireFormat) throws IOException
- Specified by:
beforeMarshallin interfaceMarshallAware- Overrides:
beforeMarshallin classMessage- Throws:
IOException
-
clearUnMarshalledState
public void clearUnMarshalledState() throws JMSException- Overrides:
clearUnMarshalledStatein classMessage- Throws:
JMSException
-
storeContentAndClear
public void storeContentAndClear()
- Overrides:
storeContentAndClearin classActiveMQMessage
-
storeContent
public void storeContent()
- Overrides:
storeContentin classActiveMQMessage
-
isContentMarshalled
public boolean isContentMarshalled()
- Overrides:
isContentMarshalledin classActiveMQMessage
-
getDataStructureType
public byte getDataStructureType()
- Specified by:
getDataStructureTypein interfaceDataStructure- Overrides:
getDataStructureTypein classActiveMQMessage- Returns:
- The type of the data structure
-
getJMSXMimeType
public String getJMSXMimeType()
Description copied from interface:MessageReturns the MIME type of this mesage. This can be used in selectors to filter on the MIME types of the different JMS messages, or in the case ofBlobMessageit allows you to create a selector on the MIME type of the BLOB body- Specified by:
getJMSXMimeTypein interfaceMessage- Overrides:
getJMSXMimeTypein classActiveMQMessage
-
clearBody
public void clearBody() throws JMSExceptionClears 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:
clearBodyin interfaceMessage- Overrides:
clearBodyin classActiveMQMessage- Throws:
JMSException
-
getBoolean
public boolean getBoolean(String name) throws JMSException
Returns thebooleanvalue with the specified name.- Specified by:
getBooleanin interfaceMapMessage- Parameters:
name- the name of theboolean- Returns:
- the
booleanvalue 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 thebytevalue with the specified name.- Specified by:
getBytein interfaceMapMessage- Parameters:
name- the name of thebyte- Returns:
- the
bytevalue 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 theshortvalue with the specified name.- Specified by:
getShortin interfaceMapMessage- Parameters:
name- the name of theshort- Returns:
- the
shortvalue 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.- Specified by:
getCharin interfaceMapMessage- 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 theintvalue with the specified name.- Specified by:
getIntin interfaceMapMessage- Parameters:
name- the name of theint- Returns:
- the
intvalue 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 thelongvalue with the specified name.- Specified by:
getLongin interfaceMapMessage- Parameters:
name- the name of thelong- Returns:
- the
longvalue 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 thefloatvalue with the specified name.- Specified by:
getFloatin interfaceMapMessage- Parameters:
name- the name of thefloat- Returns:
- the
floatvalue 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 thedoublevalue with the specified name.- Specified by:
getDoublein interfaceMapMessage- Parameters:
name- the name of thedouble- Returns:
- the
doublevalue 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 theStringvalue with the specified name.- Specified by:
getStringin interfaceMapMessage- Parameters:
name- the name of theString- Returns:
- the
Stringvalue 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.- Specified by:
getBytesin interfaceMapMessage- 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
setObjectmethod call, or its equivalent primitiveset typemethod.Note that byte values are returned as
byte[], notByte[].- Specified by:
getObjectin interfaceMapMessage- 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, anIntegeris 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<String> getMapNames() throws JMSException
Returns anEnumerationof all the names in theMapMessageobject.- Specified by:
getMapNamesin interfaceMapMessage- Returns:
- an enumeration of all the names in this
MapMessage - Throws:
JMSException
-
put
protected void put(String name, Object value) throws JMSException
- Throws:
JMSException
-
setBoolean
public void setBoolean(String name, boolean value) throws JMSException
Sets abooleanvalue with the specified name into the Map.- Specified by:
setBooleanin interfaceMapMessage- Parameters:
name- the name of thebooleanvalue- thebooleanvalue 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 abytevalue with the specified name into the Map.- Specified by:
setBytein interfaceMapMessage- Parameters:
name- the name of thebytevalue- thebytevalue 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 ashortvalue with the specified name into the Map.- Specified by:
setShortin interfaceMapMessage- Parameters:
name- the name of theshortvalue- theshortvalue 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.- Specified by:
setCharin interfaceMapMessage- Parameters:
name- the name of the Unicode charactervalue- 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 anintvalue with the specified name into the Map.- Specified by:
setIntin interfaceMapMessage- Parameters:
name- the name of theintvalue- theintvalue 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 alongvalue with the specified name into the Map.- Specified by:
setLongin interfaceMapMessage- Parameters:
name- the name of thelongvalue- thelongvalue 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 afloatvalue with the specified name into the Map.- Specified by:
setFloatin interfaceMapMessage- Parameters:
name- the name of thefloatvalue- thefloatvalue 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 adoublevalue with the specified name into the Map.- Specified by:
setDoublein interfaceMapMessage- Parameters:
name- the name of thedoublevalue- thedoublevalue 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 aStringvalue with the specified name into the Map.- Specified by:
setStringin interfaceMapMessage- Parameters:
name- the name of theStringvalue- theStringvalue 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.- Specified by:
setBytesin interfaceMapMessage- Parameters:
name- the name of the byte arrayvalue- the byte array value to set in the Map; the array is copied so that the value fornamewill 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.- Specified by:
setBytesin interfaceMapMessage- Parameters:
name- the name of the byte arrayvalue- the byte array value to set in the Mapoffset- the initial offset within the byte arraylength- 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...),Stringobjects, and byte arrays.- Specified by:
setObjectin interfaceMapMessage- Parameters:
name- the name of the Java objectvalue- 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 thisMapMessageobject.- Specified by:
itemExistsin interfaceMapMessage- 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.
-
compress
public void compress() throws IOException- Overrides:
compressin classMessage- Throws:
IOException
-
getContentMap
public Map<String,Object> getContentMap() throws JMSException
- Throws:
JMSException
-
-