public final class StreamMessage extends Message implements StreamMessage
javax.jms.StreamMessage
interface.Modifier and Type | Field and Description |
---|---|
private int |
available |
private static int |
BOOLEAN |
private static int |
BYTE |
private static int |
BYTES |
private static int |
CHAR |
private static int |
DOUBLE |
private boolean |
firstTimeBytesRead |
private static int |
FLOAT |
private DataInputStream |
inputStream
The stream for reading the data.
|
private static int |
INT |
private static int |
LONG |
private static int |
NULL |
private ByteArrayOutputStream |
outputBuffer
The array in which the written data is buffered.
|
private DataOutputStream |
outputStream
The stream in which body data is written.
|
private boolean |
prepared
true if the message has been sent since its last modification. |
private static int |
SHORT |
private static int |
STRING |
jmsDest, logger, momMsg, propertiesRO, RObody, session
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
Constructor and Description |
---|
StreamMessage()
Instantiates a bright new
StreamMessage . |
StreamMessage(Session session,
Message momMsg)
Instantiates a
StreamMessage wrapping a consumed
MOM message containing a stream of bytes. |
Modifier and Type | Method and Description |
---|---|
void |
clearBody()
API method.
|
<T> T |
getBody(Class<T> c) |
protected <T> T |
getEffectiveBody(Class<T> c)
Get message body
|
boolean |
isBodyAssignableTo(Class c)
API 2.0 method
|
protected void |
prepare()
Method actually preparing the message for sending by transferring the
local body into the wrapped MOM message.
|
private void |
prepareWrite()
Internal method called before each writing operation.
|
boolean |
readBoolean()
API method.
|
byte |
readByte()
API method.
|
int |
readBytes(byte[] bytes)
API method.
|
char |
readChar()
API method.
|
double |
readDouble()
API method.
|
float |
readFloat()
API method.
|
int |
readInt()
API method.
|
long |
readLong()
API method.
|
Object |
readObject()
API method.
|
short |
readShort()
API method.
|
String |
readString()
API method.
|
void |
reset()
API method.
|
void |
writeBoolean(boolean value)
API method.
|
void |
writeByte(byte value)
API method.
|
void |
writeBytes(byte[] value)
API method.
|
void |
writeBytes(byte[] value,
int offset,
int length)
API method.
|
void |
writeChar(char value)
API method.
|
void |
writeDouble(double value)
API method.
|
void |
writeFloat(float value)
API method.
|
void |
writeInt(int value)
API method.
|
void |
writeLong(long value)
API method.
|
void |
writeObject(Object value)
API method.
|
void |
writeShort(short value)
API method.
|
void |
writeString(String value)
API method.
|
acknowledge, clearProperties, convertJMSMessage, getBooleanProperty, getByteProperty, getCompressedMinSize, getCompressionLevel, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getMomMsg, getObjectProperty, getProperties, getPropertyNames, getShortProperty, getStringProperty, isCompressed, prepareJMSMessage, propertyExists, resetPropertiesRO, setBooleanProperty, setByteProperty, setCompressedMinSize, setCompressionLevel, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty, toString, toString, wrapMomMessage
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
acknowledge, clearProperties, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty
private transient ByteArrayOutputStream outputBuffer
private transient DataOutputStream outputStream
private transient DataInputStream inputStream
private transient boolean prepared
true
if the message has been sent since its last modification.private transient int available
private transient boolean firstTimeBytesRead
private static final int SHORT
private static final int CHAR
private static final int INT
private static final int LONG
private static final int FLOAT
private static final int DOUBLE
private static final int BOOLEAN
private static final int STRING
private static final int BYTE
private static final int BYTES
private static final int NULL
StreamMessage() throws JMSException
StreamMessage
.JMSException
- In case of an error while creating the output
stream.StreamMessage(Session session, Message momMsg) throws JMSException
StreamMessage
wrapping a consumed
MOM message containing a stream of bytes.session
- The consuming session.momMsg
- The MOM message to wrap.JMSException
- In case of an error while creating the input
stream.public <T> T getBody(Class<T> c) throws JMSException
getBody
in interface Message
getBody
in class Message
JMSException
public boolean isBodyAssignableTo(Class c) throws JMSException
Message
isBodyAssignableTo
in interface Message
isBodyAssignableTo
in class Message
c
- the specified type
Check if the message body is capable of being assigned to specified typeJMSException
protected <T> T getEffectiveBody(Class<T> c) throws JMSException
getEffectiveBody
in class Message
JMSException
- if the JMS provider fails to return a value due to some internal error.public void clearBody() throws JMSException
Calling this method leaves the message body in the same state as an empty body in a newly created message.
clearBody
in interface Message
clearBody
in class Message
JMSException
- In case of an error while closing the input or
output streams.private void prepareWrite() throws JMSException
MessageNotWriteableException
- If the message body is READ only.JMSException
- If the stream could not be prepared for the
writing operation.public void writeBoolean(boolean value) throws JMSException
writeBoolean
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeByte(byte value) throws JMSException
writeByte
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeBytes(byte[] value) throws JMSException
Each byte array is written to the message as a separate byte array field. Consecutively written byte array fields are treated as distinct fields when the fields are read.
writeBytes
in interface StreamMessage
value
- the byte array to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeBytes(byte[] value, int offset, int length) throws JMSException
The portion of the byte array is written to the message as a separate byte array field. Consecutively written byte array fields are treated as distinct fields when the fields are read.
writeBytes
in interface StreamMessage
value
- the byte array to be written.offset
- the initial offset within the byte arraylength
- the number of bytes to useMessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeChar(char value) throws JMSException
writeChar
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeDouble(double value) throws JMSException
writeDouble
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeFloat(float value) throws JMSException
writeFloat
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeInt(int value) throws JMSException
writeInt
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeLong(long value) throws JMSException
writeLong
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeShort(short value) throws JMSException
writeShort
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeString(String value) throws JMSException
writeString
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.JMSException
- If the value could not be written on the stream.public void writeObject(Object value) throws JMSException
writeObject
in interface StreamMessage
value
- the value to be written.MessageNotWriteableException
- If the message body is read-only.MessageFormatException
- If the value type is invalid.JMSException
- If the value could not be written on the stream.public boolean readBoolean() throws JMSException
readBoolean
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic byte readByte() throws JMSException
readByte
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic short readShort() throws JMSException
readShort
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic char readChar() throws JMSException
readChar
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic int readInt() throws JMSException
readInt
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic long readLong() throws JMSException
readLong
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic float readFloat() throws JMSException
readFloat
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic double readDouble() throws JMSException
readDouble
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic int readBytes(byte[] bytes) throws JMSException
To read the field value, readBytes should be successively called until it returns a value less than the length of the read buffer. The value of the bytes in the buffer following the last byte read is undefined. If readBytes returns a value equal to the length of the buffer, a subsequent readBytes call must be made. If there are no more bytes to be read, this call returns -1.
If the byte array field value is null, readBytes returns -1.
If the byte array field value is empty, readBytes returns 0.
Once the first readBytes call on a byte[] field value has been made, the full value of the field must be read before it is valid to read the next field. An attempt to read the next field before that has been done will throw a MessageFormatException.
To read the byte field value into a new byte[] object, use the readObject method.
readBytes
in interface StreamMessage
bytes
- the buffer into which the data is read.MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic String readString() throws JMSException
readString
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the expected type is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic Object readObject() throws JMSException
readObject
in interface StreamMessage
MessageNotReadableException
- If the message body is write-only.MessageFormatException
- If reading the body is
not possible.MessageEOFException
- Unexpected end of bytes array.JMSException
- internal errorpublic void reset() throws JMSException
reset
in interface StreamMessage
JMSException
- If an error occurs while closing the output
stream.protected void prepare() throws JMSException
prepare
in class Message
MessageFormatException
- If an error occurs while serializing.JMSException
Copyright © 2019 ScalAgent D.T.. All rights reserved.