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_STR 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_STR if the the object used to create the MessageBytes was a char[]
        See Also:
        Constant Field Values
    • Constructor Detail

      • MessageBytes

        @Deprecated
        public MessageBytes()
        Deprecated.
        Use static newInstance() in order to allow future hooks.
        Creates a new, uninitialized MessageBytes object.
    • Method Detail

      • newInstance

        public static MessageBytes newInstance()
        Construct a new MessageBytes instance
      • setCaseSenitive

        public void setCaseSenitive​(boolean b)
        Configure the case sensitivity
      • 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
      • setCharset

        public void setCharset​(Charset enc)
        Set the encoding. If the object was constructed from bytes[]. any previous conversion is reset. If no encoding is set, we'll use 8859-1.
      • setChars

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

        public void resetStringValue()
        Remove the cached string value. Use it after a conversion on the byte[] or after the encoding is changed XXX Is this needed ?
      • setString

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

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

        public int getType()
        Return the type of the original content. Can be T_STR, T_BYTES, T_CHARS or T_NULL
      • 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.
      • 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.
      • getString

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

        public void toBytes()
        Unimplemented yet. 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.
      • 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
      • startsWith

        public boolean startsWith​(String s)
        Returns true if the message bytes starts with the specified string.
        Parameters:
        s - the string
      • startsWithIgnoreCase

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

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

        public int indexOf​(char c)
      • indexOf

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

        public int indexOf​(String s)
      • indexOfIgnoreCase

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

        public int indexOf​(char c,
                           int starting)
        Returns true if the message bytes starts with the specified string.
        Parameters:
        c - the character
        starting - The start position
      • setInt

        public void setInt​(int i)
        Set the buffer to the representation of an int
      • setLong

        public void setLong​(long l)
        Set the buffer to the representation of an long
      • getInt

        public int getInt()
        Convert the buffer to an int, cache the value
      • getLong

        public long getLong()
        Convert the buffer to an long, cache the value