Class MessageBytes

java.lang.Object
org.glassfish.grizzly.http.util.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:
[email protected], James Todd [[email protected]], Costin Manolache
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Field Summary

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

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

    Modifier and Type
    Method
    Description
    void
    Copy the src into this MessageBytes, allocating more space if needed
    boolean
     
    boolean
    Compares the message bytes to the specified String object.
    boolean
    Compares the message bytes to the specified String object.
    Returns the byte chunk, representing the byte[] and offset/length.
    Returns the char chunk, representing the char[] and offset/length.
     
    int
    Convert the buffer to an int, cache the value
    int
    Returns the length of the original buffer.
    long
    Convert the buffer to an long, cache the value
    Returns the string value.
    int
    Return the type of the original content.
    int
     
    int
    indexOf(char c)
     
    int
    indexOf(char c, int starting)
    Returns true if the message bytes starts with the specified string.
    int
     
    int
    indexOf(String s, int starting)
     
    int
    indexOfIgnoreCase(String s, int starting)
     
    boolean
     
    Construct a new MessageBytes instance
    void
    Resets the message bytes to an uninitialized (NULL) state.
    void
    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
    Set the encoding.
    static void
     
    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
    Set the content to be a string
    boolean
    Returns true if the message bytes starts with the specified string.
    boolean
    Returns true if the message bytes starts with the specified string.
    void
    Unimplemented yet.
    void
    Convert to char[] and fill the CharChunk.
    Compute the string value

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • T_NULL

      public static final int T_NULL
      See Also:
    • 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:
    • 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:
    • 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:
  • Constructor Details

    • MessageBytes

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

    • newInstance

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

      public void setCaseSenitive(boolean b)
      Configure the case sensitivity
    • getClone

      public MessageBytes getClone()
    • 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
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • 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
    • duplicate

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

      public static void setFactory(MessageBytes.MessageBytesFactory mbf)