Class BytesMessageImpl

  • All Implemented Interfaces:
    java.io.Serializable, javax.jms.BytesMessage, javax.jms.Message

    public class BytesMessageImpl
    extends MessageImpl
    implements javax.jms.BytesMessage
    Implementation of a BytesMessage.
    Author:
    IIT GmbH, Bremen/Germany, Copyright (c) 2000-2002, All Rights Reserved
    See Also:
    Serialized Form
    • Constructor Detail

      • BytesMessageImpl

        public BytesMessageImpl()
        Creates a new BytesMessageImpl. The message is set to write-only mode.
      • BytesMessageImpl

        public BytesMessageImpl​(byte[] array,
                                int cnt)
    • Method Detail

      • writeBody

        protected void writeBody​(java.io.DataOutput out)
                          throws java.io.IOException
        Overrides:
        writeBody in class MessageImpl
        Throws:
        java.io.IOException
      • readBody

        protected void readBody​(java.io.DataInput in)
                         throws java.io.IOException
        Overrides:
        readBody in class MessageImpl
        Throws:
        java.io.IOException
      • _getBodyLength

        public long _getBodyLength()
      • _getBody

        public byte[] _getBody()
      • getBodyLength

        public long getBodyLength()
                           throws javax.jms.JMSException
        Specified by:
        getBodyLength in interface javax.jms.BytesMessage
        Throws:
        javax.jms.JMSException
      • readBoolean

        public boolean readBoolean()
                            throws javax.jms.JMSException
        Specified by:
        readBoolean in interface javax.jms.BytesMessage
        Throws:
        javax.jms.JMSException
      • readByte

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

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

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

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

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

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

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

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

        public double readDouble()
                          throws javax.jms.JMSException
        Read a double from the stream message.
        Specified by:
        readDouble in interface javax.jms.BytesMessage
        Returns:
        the next eight bytes from the stream message, interpreted as a double.
        Throws:
        javax.jms.MessageNotReadableException - if message in write-only mode.
        javax.jms.MessageEOFException - if end of message stream
        javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
      • 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 stream message.

        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 stream message.
        Throws:
        javax.jms.MessageNotReadableException - if message in write-only mode.
        javax.jms.MessageEOFException - if end of message stream
        javax.jms.JMSException - if JMS fails to read message due to some internal JMS error.
      • readBytes

        public int readBytes​(byte[] value)
                      throws javax.jms.JMSException
        Read a byte array from the stream message.
        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.MessageNotReadableException - if message in write-only mode.
        javax.jms.MessageEOFException - if end of message stream
        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.
        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.
        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.MessageNotReadableException - if message in write-only mode.
        javax.jms.MessageEOFException - if end of message stream
        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 stream message 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.MessageNotWriteableException - if message in read-only mode.
        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 stream message as a 1-byte value.
        Specified by:
        writeByte in interface javax.jms.BytesMessage
        Parameters:
        value - the byte value to be written.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        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 stream message as two bytes, high byte first.
        Specified by:
        writeShort in interface javax.jms.BytesMessage
        Parameters:
        value - the short to be written.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        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 stream message 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.MessageNotWriteableException - if message in read-only mode.
        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 stream message as four bytes, high byte first.
        Specified by:
        writeInt in interface javax.jms.BytesMessage
        Parameters:
        value - the int to be written.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        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 stream message as eight bytes, high byte first.
        Specified by:
        writeLong in interface javax.jms.BytesMessage
        Parameters:
        value - the long to be written.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        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 stream message 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.MessageNotWriteableException - if message in read-only mode.
        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 stream message 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.MessageNotWriteableException - if message in read-only mode.
        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 stream message 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.MessageNotWriteableException - if message in read-only mode.
        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 stream message.
        Specified by:
        writeBytes in interface javax.jms.BytesMessage
        Parameters:
        value - the byte array to be written.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        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 stream message.
        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.MessageNotWriteableException - if message in read-only mode.
        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 stream message.

        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.
        Throws:
        javax.jms.MessageNotWriteableException - if message in read-only mode.
        javax.jms.MessageFormatException - if object is invalid type.
        javax.jms.JMSException - if JMS fails to write message due to some internal JMS error.
      • reset

        public void reset()
                   throws javax.jms.JMSException
        Put the message in read-only mode, and reposition the stream of bytes to the beginning.
        Specified by:
        reset in interface javax.jms.BytesMessage
        Overrides:
        reset in class MessageImpl
        Throws:
        javax.jms.JMSException - if JMS fails to reset the message due to some internal JMS error.
        javax.jms.MessageFormatException - if message has an invalid format
      • clearBody

        public void clearBody()
                       throws javax.jms.JMSException
        Clear out the message body. All other parts of the message are left untouched.
        Specified by:
        clearBody in interface javax.jms.Message
        Overrides:
        clearBody in class MessageImpl
        Throws:
        javax.jms.JMSException - if JMS fails to due to some internal JMS error.