org.apache.tomcat.util.buf

## Class MessageBytes

- java.lang.Object
- - org.apache.tomcat.util.buf.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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `T_BYTES` getType() is T_BYTES if the the object used to create the MessageBytes was a byte[]
    `static int` | `T_CHARS` getType() is T_CHARS 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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `clone()`
    `void` | `duplicate(MessageBytes src)` Copy the src into this MessageBytes, allocating more space if needed.
    `boolean` | `equals(MessageBytes mb)`
    `boolean` | `equals(Object obj)`
    `boolean` | `equals(String s)` Compares the message bytes to the specified String object.
    `boolean` | `equalsIgnoreCase(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.
    `Charset` | `getCharset()`
    `int` | `getLength()` Returns the length of the original buffer.
    `long` | `getLong()` Convert the buffer to an long, cache the value.
    `String` | `getString()` Returns the string value.
    `int` | `getType()` Return the type of the original content.
    `int` | `hashCode()`
    `int` | `indexOf(String s)`
    `int` | `indexOf(String s, int starting)`
    `int` | `indexOfIgnoreCase(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` | `setBytes(byte[] b, int off, int len)` Sets the content to the specified subarray of bytes.
    `void` | `setChars(char[] c, int off, int len)` Sets the content to be a char[]
    `void` | `setCharset(Charset charset)` Set the Charset used for string<->byte conversions.
    `void` | `setLong(long l)` Set the buffer to the representation of a long.
    `void` | `setString(String s)` Set the content to be a string
    `boolean` | `startsWithIgnoreCase(String s, int pos)`
    `void` | `toBytes()` Do a char->byte conversion.
    `void` | `toChars()` Convert to char[] and fill the CharChunk.
    `String` | `toString()` Compute the string value.

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### T_NULL

          public static final int T_NULL

      See Also:
        Constant Field Values

    - #### 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

    - #### clone

          public Object clone()
                       throws CloneNotSupportedException

      Overrides:
        `clone` in class `Object`
      Throws:
        `CloneNotSupportedException`

    - #### 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

    - #### equals

          public boolean equals(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### equals

          public boolean equals(MessageBytes mb)

    - #### 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 an long, cache the value.
      Returns:
        the long value

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.