## org.apache.tomcat.util.buf
Class MessageBytes

    java.lang.Object
      org.apache.tomcat.util.buf.MessageBytes

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

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

Nested Class Summary
`static class` `MessageBytes.MessageBytesFactory`

Field Summary
`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
`MessageBytes()` Creates a new, uninitialized MessageBytes object.

Method Summary
`void` `duplicate(MessageBytes src)` Copy the src into this MessageBytes, allocating more space if needed
`boolean` `equals(MessageBytes mb)`
`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.
`long` `getTime()` Deprecated. The buffer are general purpose, caching for headers should be done in headers
`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` `setEncoding(java.lang.String enc)` Set the encoding.
`static void` `setFactory(MessageBytes.MessageBytesFactory mbf)`
`void` `setInt(int i)` Set the buffer to the representation of an int
`void` `setString(java.lang.String s)` Set the content to be a string
`void` `setTime(long t)`
`void` `setTime(long t, java.text.DateFormat df)` Deprecated. The buffer are general purpose, caching for headers should be done in headers. The second parameter allows us to pass a date format instance to avoid synchronization problems.
`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, equals, 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_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

    public MessageBytes()

  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

### 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 ascii bytes
    `off` - the start offset of the bytes
    `len` - the length of the bytes

### setEncoding

    public void setEncoding(java.lang.String 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[]

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

### 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(MessageBytes mb)

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

### hashCode

    public int hashCode()

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

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

### setTime

    public void setTime(long t,
                        java.text.DateFormat df)

  Deprecated. The buffer are general purpose, caching for headers should be done in headers. The second parameter allows us to pass a date format instance to avoid synchronization problems.

### setTime

    public void setTime(long t)

### setInt

    public void setInt(int i)

  Set the buffer to the representation of an int

### getTime

    public long getTime()

  Deprecated. The buffer are general purpose, caching for headers should be done in headers

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

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