Class MessageBytes

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public final class MessageBytes
    extends java.lang.Object
    implements java.lang.Cloneable, java.io.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 Summary

      Fields 
      Modifier and Type Field Description
      static int T_BYTES
      getType() is T_STR if the the object used to create the MessageBytes was a byte[]
      static int T_CHARS
      getType() is T_STR if the the object used to create the MessageBytes was a char[]
      static int T_NULL  
      static int T_STR
      getType() is T_STR if the the object used to create the MessageBytes was a String
    • Constructor Summary

      Constructors 
      Constructor Description
      MessageBytes()
      Deprecated.
      Use static newInstance() in order to allow future hooks.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void duplicate​(MessageBytes src)
      Copy the src into this MessageBytes, allocating more space if needed
      boolean equals​(java.lang.Object obj)  
      boolean equals​(java.lang.String s)
      Compares the message bytes to the specified String object.
      boolean equalsIgnoreCase​(java.lang.String s)
      Compares the message bytes to the specified String object.
      ByteChunk getByteChunk()
      Returns the byte chunk, representing the byte[] and offset/length.
      CharChunk getCharChunk()
      Returns the char chunk, representing the char[] and offset/length.
      MessageBytes getClone()  
      int getInt()
      Convert the buffer to an int, cache the value
      int getLength()
      Returns the length of the original buffer.
      long getLong()
      Convert the buffer to an long, cache the value
      java.lang.String getString()
      Returns the string value.
      int getType()
      Return the type of the original content.
      int hashCode()  
      int indexOf​(char c)  
      int indexOf​(char c, int starting)
      Returns true if the message bytes starts with the specified string.
      int indexOf​(java.lang.String s)  
      int indexOf​(java.lang.String s, int starting)  
      int indexOfIgnoreCase​(java.lang.String s, int starting)  
      boolean isNull()  
      static MessageBytes newInstance()
      Construct a new MessageBytes instance
      void recycle()
      Resets the message bytes to an uninitialized (NULL) state.
      void resetStringValue()
      Remove the cached string value.
      void setBytes​(byte[] b, int off, int len)
      Sets the content to the specified subarray of bytes.
      void setCaseSenitive​(boolean b)
      Configure the case sensitivity
      void setChars​(char[] c, int off, int len)
      Sets the content to be a char[]
      void setCharset​(java.nio.charset.Charset enc)
      Set the encoding.
      static void setFactory​(MessageBytes.MessageBytesFactory mbf)  
      void setInt​(int i)
      Set the buffer to the representation of an int
      void setLong​(long l)
      Set the buffer to the representation of an long
      void setString​(java.lang.String s)
      Set the content to be a string
      boolean startsWith​(java.lang.String s)
      Returns true if the message bytes starts with the specified string.
      boolean startsWithIgnoreCase​(java.lang.String s, int pos)
      Returns true if the message bytes starts with the specified string.
      void toBytes()
      Unimplemented yet.
      void toChars()
      Convert to char[] and fill the CharChunk.
      java.lang.String toString()
      Compute the string value
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • 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​(java.nio.charset.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​(java.lang.String s)
        Set the content to be a string
      • toString

        public java.lang.String toString()
        Compute the string value
        Overrides:
        toString in class java.lang.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 java.lang.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​(java.lang.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​(java.lang.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
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • startsWith

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

        public boolean startsWithIgnoreCase​(java.lang.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 java.lang.Object
      • indexOf

        public int indexOf​(char c)
      • indexOf

        public int indexOf​(java.lang.String s,
                           int starting)
      • indexOf

        public int indexOf​(java.lang.String s)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(java.lang.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
      • duplicate

        public void duplicate​(MessageBytes src)
                       throws java.io.IOException
        Copy the src into this MessageBytes, allocating more space if needed
        Throws:
        java.io.IOException
      • 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