Class MessageBytes

  • All Implemented Interfaces:
    Serializable, Cloneable

    public final class MessageBytes
    extends Object
    implements Cloneable, Serializable
    This class is used to represent a subarray of bytes in an HTTP message. It represents all request/response elements. The byte/char conversions are delayed and cached. Everything is recyclable. The object can represent a byte[], a char[], or a (sub) String. All operations can be made in case sensitive mode or not.
    Author:
    dac@eng.sun.com, James Todd [gonzo@eng.sun.com], Costin Manolache
    See Also:
    Serialized Form
    • Field Detail

      • T_STR

        public static final int T_STR
        getType() is T_STR if the the object used to create the MessageBytes was a String
        See Also:
        Constant Field Values
      • T_BYTES

        public static final int T_BYTES
        getType() is T_BYTES if the the object used to create the MessageBytes was a byte[]
        See Also:
        Constant Field Values
      • T_CHARS

        public static final int T_CHARS
        getType() is T_CHARS if the the object used to create the MessageBytes was a char[]
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        public static MessageBytes newInstance()
        Construct a new MessageBytes instance.
        Returns:
        the instance
      • isNull

        public boolean isNull()
      • recycle

        public void recycle()
        Resets the message bytes to an uninitialized (NULL) state.
      • setBytes

        public void setBytes​(byte[] b,
                             int off,
                             int len)
        Sets the content to the specified subarray of bytes.
        Parameters:
        b - the bytes
        off - the start offset of the bytes
        len - the length of the bytes
      • setChars

        public void setChars​(char[] c,
                             int off,
                             int len)
        Sets the content to be a char[]
        Parameters:
        c - the chars
        off - the start offset of the chars
        len - the length of the chars
      • setString

        public void setString​(String s)
        Set the content to be a string
        Parameters:
        s - The string
      • toString

        public String toString()
        Compute the string value.
        Overrides:
        toString in class Object
        Returns:
        the string
      • getType

        public int getType()
        Return the type of the original content. Can be T_STR, T_BYTES, T_CHARS or T_NULL
        Returns:
        the type
      • getByteChunk

        public ByteChunk getByteChunk()
        Returns the byte chunk, representing the byte[] and offset/length. Valid only if T_BYTES or after a conversion was made.
        Returns:
        the byte chunk
      • getCharChunk

        public CharChunk getCharChunk()
        Returns the char chunk, representing the char[] and offset/length. Valid only if T_CHARS or after a conversion was made.
        Returns:
        the char chunk
      • getString

        public String getString()
        Returns the string value. Valid only if T_STR or after a conversion was made.
        Returns:
        the string
      • getCharset

        public Charset getCharset()
        Returns:
        the Charset used for string<->byte conversions.
      • setCharset

        public void setCharset​(Charset charset)
        Set the Charset used for string<->byte conversions.
        Parameters:
        charset - The charset
      • toBytes

        public void toBytes()
        Do a char->byte conversion.
      • toChars

        public void toChars()
        Convert to char[] and fill the CharChunk. XXX Not optimized - it converts to String first.
      • getLength

        public int getLength()
        Returns the length of the original buffer. Note that the length in bytes may be different from the length in chars.
        Returns:
        the length
      • equals

        public boolean equals​(String s)
        Compares the message bytes to the specified String object.
        Parameters:
        s - the String to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(String s)
        Compares the message bytes to the specified String object.
        Parameters:
        s - the String to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • startsWithIgnoreCase

        public boolean startsWithIgnoreCase​(String s,
                                            int pos)
        Parameters:
        s - the string
        pos - The start position
        Returns:
        true if the message bytes starts with the specified string.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • indexOf

        public int indexOf​(String s,
                           int starting)
      • indexOf

        public int indexOf​(String s)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(String s,
                                     int starting)
      • duplicate

        public void duplicate​(MessageBytes src)
                       throws IOException
        Copy the src into this MessageBytes, allocating more space if needed.
        Parameters:
        src - The source
        Throws:
        IOException - Writing overflow data to the output channel failed
      • setLong

        public void setLong​(long l)
        Set the buffer to the representation of a long.
        Parameters:
        l - The long
      • getLong

        public long getLong()
        Convert the buffer to a long, cache the value.
        Returns:
        the long value