org.exolab.jmscts.jms.message
Class BasicBytesMessage

java.lang.Object
  |
  +--org.exolab.jmscts.jms.message.BasicMessage
        |
        +--org.exolab.jmscts.jms.message.BasicBytesMessage
All Implemented Interfaces:
javax.jms.BytesMessage, javax.jms.Message

public class BasicBytesMessage
extends BasicMessage
implements javax.jms.BytesMessage

This class provides a basic implementation of the javax.jms.BytesMessage interface.

Version:
$Revision: 1.2 $ $Date: 2004/02/02 03:49:55 $
Author:
Tim Anderson
See Also:
BytesMessage

Fields inherited from interface javax.jms.Message
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
 
Constructor Summary
BasicBytesMessage()
          Construct a new BasicBytesMessage.
 
Method Summary
 void clearBody()
          Overide the super class method to reset the streams, and put the message body in write only mode.
 boolean readBoolean()
          Read a boolean from the bytes message stream
 byte readByte()
          Read a signed 8-bit value from the bytes message stream
 int readBytes(byte[] value)
          Read a byte array from the bytes message stream
 int readBytes(byte[] value, int length)
          Read a portion of the bytes message stream.
 char readChar()
          Read a Unicode character value from the bytes message stream
 double readDouble()
          Read a double from the bytes message stream
 float readFloat()
          Read a float from the bytes message stream
 int readInt()
          Read a signed 32-bit integer from the bytes message stream
 long readLong()
          Read a signed 64-bit integer from the bytes message stream
 short readShort()
          Read a signed 16-bit number from the bytes message stream
 int readUnsignedByte()
          Read an unsigned 8-bit number from the bytes message stream
 int readUnsignedShort()
          Read an unsigned 16-bit number from the bytes message stream
 java.lang.String readUTF()
          Read in a string that has been encoded using a modified UTF-8 format from the bytes message stream
 void reset()
          Put the message body in read-only mode, and reposition the stream of bytes to the beginning
 void setReadOnly(boolean readOnly)
          Set the read-only mode of the message.
 void writeBoolean(boolean value)
          Write a boolean to the bytes message stream as a 1-byte value.
 void writeByte(byte value)
          Write out a byte to the bytes message stream as a 1-byte value
 void writeBytes(byte[] value)
          Write a byte array to the bytes message stream
 void writeBytes(byte[] value, int offset, int length)
          Write a portion of a byte array to the bytes message stream
 void writeChar(char value)
          Write a char to the bytes message stream as a 2-byte value, high byte first.
 void writeDouble(double value)
          Convert the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the bytes message stream as an 8-byte quantity, high byte first.
 void writeFloat(float value)
          Convert the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the bytes message stream as a 4-byte quantity, high byte first.
 void writeInt(int value)
          Write an int to the bytes message stream as four bytes, high byte first.
 void writeLong(long value)
          Write a long to the bytes message stream as eight bytes, high byte first
 void writeObject(java.lang.Object value)
          Write a Java object to the bytes message stream.
 void writeShort(short value)
          Write a short to the bytes message stream as two bytes, high byte first
 void writeUTF(java.lang.String value)
          Write a string to the bytes message stream using UTF-8 encoding in a machine-independent manner.
 
Methods inherited from class org.exolab.jmscts.jms.message.BasicMessage
acknowledge, checkPropertyWrite, checkRead, checkWrite, clearProperties, getBodyReadOnly, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertiesReadOnly, getPropertyNames, getShortProperty, getStringProperty, propertyExists, setBodyReadOnly, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setPropertiesReadOnly, 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, 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

BasicBytesMessage

public BasicBytesMessage()
Construct a new BasicBytesMessage. When first created, the message is in write-only mode.
Method Detail

readBoolean

public boolean readBoolean()
                    throws javax.jms.JMSException
Read a boolean from the bytes message stream
Specified by:
readBoolean in interface javax.jms.BytesMessage
Returns:
the boolean value read
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of bytes stream

readByte

public byte readByte()
              throws javax.jms.JMSException
Read a signed 8-bit value from the bytes message stream
Specified by:
readByte in interface javax.jms.BytesMessage
Returns:
the next byte from the bytes message stream as a signed 8-bit byte
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readUnsignedByte

public int readUnsignedByte()
                     throws javax.jms.JMSException
Read an unsigned 8-bit number from the bytes message stream
Specified by:
readUnsignedByte in interface javax.jms.BytesMessage
Returns:
the next byte from the bytes message stream, interpreted as an unsigned 8-bit number
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readShort

public short readShort()
                throws javax.jms.JMSException
Read a signed 16-bit number from the bytes message stream
Specified by:
readShort in interface javax.jms.BytesMessage
Returns:
the next two bytes from the bytes message stream, interpreted as a signed 16-bit number
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readUnsignedShort

public int readUnsignedShort()
                      throws javax.jms.JMSException
Read an unsigned 16-bit number from the bytes message stream
Specified by:
readUnsignedShort in interface javax.jms.BytesMessage
Returns:
the next two bytes from the bytes message stream, interpreted as an unsigned 16-bit integer
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readChar

public char readChar()
              throws javax.jms.JMSException
Read a Unicode character value from the bytes message stream
Specified by:
readChar in interface javax.jms.BytesMessage
Returns:
the next two bytes from the bytes message stream as a Unicode character
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readInt

public int readInt()
            throws javax.jms.JMSException
Read a signed 32-bit integer from the bytes message stream
Specified by:
readInt in interface javax.jms.BytesMessage
Returns:
the next four bytes from the bytes message stream, interpreted as an int
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readLong

public long readLong()
              throws javax.jms.JMSException
Read a signed 64-bit integer from the bytes message stream
Specified by:
readLong in interface javax.jms.BytesMessage
Returns:
the next eight bytes from the bytes message stream, interpreted as a long.
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readFloat

public float readFloat()
                throws javax.jms.JMSException
Read a float from the bytes message stream
Specified by:
readFloat in interface javax.jms.BytesMessage
Returns:
the next four bytes from the bytes message stream, interpreted as a float
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readDouble

public double readDouble()
                  throws javax.jms.JMSException
Read a double from the bytes message stream
Specified by:
readDouble in interface javax.jms.BytesMessage
Returns:
the next eight bytes from the bytes message stream, interpreted as a double
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream

readUTF

public java.lang.String readUTF()
                         throws javax.jms.JMSException
Read in a string that has been encoded using a modified UTF-8 format from the bytes message stream

For more information on the UTF-8 format, see "File System Safe UCS Transformation Format (FSS_UFT)", X/Open Preliminary Specification, X/Open Company Ltd., Document Number: P316. This information also appears in ISO/IEC 10646, Annex P.

Specified by:
readUTF in interface javax.jms.BytesMessage
Returns:
a Unicode string from the bytes message stream
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error
javax.jms.MessageEOFException - if end of message stream
javax.jms.MessageFormatException - if string has an invalid format

readBytes

public int readBytes(byte[] value)
              throws javax.jms.JMSException
Read a byte array from the bytes message stream

If the length of array value is less than the bytes remaining to be read from the stream, the array should be filled. A subsequent call reads the next increment, etc.

If the bytes remaining in the stream is less than the length of array value, the bytes should be read into the array. The return value of the total number of bytes read will be less than the length of the array, indicating that there are no more bytes left to be read from the stream. The next read of the stream returns -1.

Specified by:
readBytes in interface javax.jms.BytesMessage
Parameters:
value - the buffer into which the data is read
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached
Throws:
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error

readBytes

public int readBytes(byte[] value,
                     int length)
              throws javax.jms.JMSException
Read a portion of the bytes message stream.

If the length of array value is less than the bytes remaining to be read from the stream, the array should be filled. A subsequent call reads the next increment, etc.

If the bytes remaining in the stream is less than the length of array value, the bytes should be read into the array. The return value of the total number of bytes read will be less than the length of the array, indicating that there are no more bytes left to be read from the stream. The next read of the stream returns -1.

If length is negative, or length is greater than the length of the array value, then an IndexOutOfBoundsException is thrown. No bytes will be read from the stream for this exception case.

Specified by:
readBytes in interface javax.jms.BytesMessage
Parameters:
value - the buffer into which the data is read.
length - the number of bytes to read. Must be less than or equal to value.length.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
Throws:
java.lang.IndexOutOfBoundsException - if length is invalid
javax.jms.JMSException - if JMS fails to read message due to some internal JMS error

writeBoolean

public void writeBoolean(boolean value)
                  throws javax.jms.JMSException
Write a boolean to the bytes message stream as a 1-byte value. The value true is written out as the value (byte)1; the value false is written out as the value (byte)0.
Specified by:
writeBoolean in interface javax.jms.BytesMessage
Parameters:
value - the boolean value to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeByte

public void writeByte(byte value)
               throws javax.jms.JMSException
Write out a byte to the bytes message stream as a 1-byte value
Specified by:
writeByte in interface javax.jms.BytesMessage
Parameters:
value - the byte value to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeShort

public void writeShort(short value)
                throws javax.jms.JMSException
Write a short to the bytes message stream as two bytes, high byte first
Specified by:
writeShort in interface javax.jms.BytesMessage
Parameters:
value - the short to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeChar

public void writeChar(char value)
               throws javax.jms.JMSException
Write a char to the bytes message stream as a 2-byte value, high byte first.
Specified by:
writeChar in interface javax.jms.BytesMessage
Parameters:
value - the char value to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeInt

public void writeInt(int value)
              throws javax.jms.JMSException
Write an int to the bytes message stream as four bytes, high byte first.
Specified by:
writeInt in interface javax.jms.BytesMessage
Parameters:
value - the int to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeLong

public void writeLong(long value)
               throws javax.jms.JMSException
Write a long to the bytes message stream as eight bytes, high byte first
Specified by:
writeLong in interface javax.jms.BytesMessage
Parameters:
value - the long to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeFloat

public void writeFloat(float value)
                throws javax.jms.JMSException
Convert the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the bytes message stream as a 4-byte quantity, high byte first.
Specified by:
writeFloat in interface javax.jms.BytesMessage
Parameters:
value - the float value to be written.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeDouble

public void writeDouble(double value)
                 throws javax.jms.JMSException
Convert the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the bytes message stream as an 8-byte quantity, high byte first.
Specified by:
writeDouble in interface javax.jms.BytesMessage
Parameters:
value - the double value to be written.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeUTF

public void writeUTF(java.lang.String value)
              throws javax.jms.JMSException
Write a string to the bytes message stream using UTF-8 encoding in a machine-independent manner.

For more information on the UTF-8 format, see "File System Safe UCS Transformation Format (FSS_UFT)", X/Open Preliminary Specification, X/Open Company Ltd., Document Number: P316. This information also appears in ISO/IEC 10646, Annex P.

Specified by:
writeUTF in interface javax.jms.BytesMessage
Parameters:
value - the String value to be written
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeBytes

public void writeBytes(byte[] value)
                throws javax.jms.JMSException
Write a byte array to the bytes message stream
Specified by:
writeBytes in interface javax.jms.BytesMessage
Parameters:
value - the byte array to be written.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error

writeBytes

public void writeBytes(byte[] value,
                       int offset,
                       int length)
                throws javax.jms.JMSException
Write a portion of a byte array to the bytes message stream
Specified by:
writeBytes in interface javax.jms.BytesMessage
Parameters:
value - the byte array value to be written.
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

writeObject

public void writeObject(java.lang.Object value)
                 throws javax.jms.JMSException
Write a Java object to the bytes message stream.

Note that this method only works for the objectified primitive object types (Integer, Double, Long ...), String's and byte arrays.

Specified by:
writeObject in interface javax.jms.BytesMessage
Parameters:
value - the Java object to be written. Must not be null.
Throws:
javax.jms.JMSException - if JMS fails to write message due to some internal JMS error
javax.jms.MessageFormatException - if object is invalid type

reset

public void reset()
           throws javax.jms.JMSException
Put the message body in read-only mode, and reposition the stream of bytes to the beginning
Specified by:
reset in interface javax.jms.BytesMessage
Throws:
javax.jms.JMSException - if JMS fails to reset the message due to some internal JMS error

clearBody

public void clearBody()
               throws javax.jms.JMSException
Overide the super class method to reset the streams, and put the message body in write only mode.

If clearBody is called on a message in read-only mode, the message body is cleared and the message is in write-only mode. bytes to the beginning.

If clearBody is called on a message already in write-only mode, the spec does not define the outcome, so do nothing. Client must then call reset, followed by clearBody to reset the stream at the beginning for a new write.

Specified by:
clearBody in interface javax.jms.Message
Overrides:
clearBody in class BasicMessage
Throws:
javax.jms.JMSException - if JMS fails to reset the message due to some internal JMS error

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws javax.jms.JMSException
Set the read-only mode of the message.
Overrides:
setReadOnly in class BasicMessage
Parameters:
readOnly - if true, make the message body and properties read-only, and invoke reset()
Throws:
javax.jms.JMSException - if the read-only mode cannot be changed


Copyright © 2001-2004 JMS CTS Team. All Rights Reserved.