org.apache.tomcat.util.buf

Class MessageBytes

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

Nested Class Summary
static classMessageBytes.MessageBytesFactory
Field Summary
static intT_BYTES
getType() is T_STR if the the object used to create the MessageBytes was a byte[]
static intT_CHARS
getType() is T_STR if the the object used to create the MessageBytes was a char[]
static intT_NULL
static intT_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
voidduplicate(MessageBytes src)
Copy the src into this MessageBytes, allocating more space if needed
booleanequals(String s)
Compares the message bytes to the specified String object.
booleanequals(MessageBytes mb)
booleanequalsIgnoreCase(String s)
Compares the message bytes to the specified String object.
ByteChunkgetByteChunk()
Returns the byte chunk, representing the byte[] and offset/length.
CharChunkgetCharChunk()
Returns the char chunk, representing the char[] and offset/length.
MessageBytesgetClone()
intgetInt()
Convert the buffer to an int, cache the value
intgetLength()
Returns the length of the original buffer.
longgetLong()
Convert the buffer to an long, cache the value
StringgetString()
Returns the string value.
longgetTime()
intgetType()
Return the type of the original content.
inthashCode()
intindexOf(char c)
intindexOf(String s, int starting)
intindexOf(String s)
intindexOf(char c, int starting)
Returns true if the message bytes starts with the specified string.
intindexOfIgnoreCase(String s, int starting)
booleanisNull()
static MessageBytesnewInstance()
Construct a new MessageBytes instance
voidrecycle()
Resets the message bytes to an uninitialized (NULL) state.
voidresetStringValue()
Remove the cached string value.
voidsetBytes(byte[] b, int off, int len)
Sets the content to the specified subarray of bytes.
voidsetCaseSenitive(boolean b)
Configure the case sensitivity
voidsetChars(char[] c, int off, int len)
Sets the content to be a char[]
voidsetEncoding(String enc)
Set the encoding.
static voidsetFactory(MessageBytes.MessageBytesFactory mbf)
voidsetInt(int i)
Set the buffer to the representation of an int
voidsetLong(long l)
Set the buffer to the representation of an long
voidsetString(String s)
Set the content to be a string
voidsetTime(long t, DateFormat df)
voidsetTime(long t)
booleanstartsWith(String s)
Returns true if the message bytes starts with the specified string.
booleanstartsWithIgnoreCase(String s, int pos)
Returns true if the message bytes starts with the specified string.
voidtoBytes()
Unimplemented yet.
voidtoChars()
Convert to char[] and fill the CharChunk.
StringtoString()
Compute the string value

Field Detail

T_BYTES

public static final int T_BYTES
getType() is T_STR if the the object used to create the MessageBytes was a byte[]

T_CHARS

public static final int T_CHARS
getType() is T_STR if the the object used to create the MessageBytes was a char[]

T_NULL

public static final int T_NULL

T_STR

public static final int T_STR
getType() is T_STR if the the object used to create the MessageBytes was a String

Constructor Detail

MessageBytes

public MessageBytes()

Deprecated: Use static newInstance() in order to allow future hooks.

Creates a new, uninitialized MessageBytes object.

Method Detail

duplicate

public void duplicate(MessageBytes src)
Copy the src into this MessageBytes, allocating more space if needed

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

equals

public boolean equals(MessageBytes mb)

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

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.

getClone

public MessageBytes getClone()

getInt

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

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.

getLong

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

getString

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

getTime

public long getTime()

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

getType

public int getType()
Return the type of the original content. Can be T_STR, T_BYTES, T_CHARS or T_NULL

hashCode

public int hashCode()

indexOf

public int indexOf(char c)

indexOf

public int indexOf(String s, int starting)

indexOf

public int indexOf(String s)

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

indexOfIgnoreCase

public int indexOfIgnoreCase(String s, int starting)

isNull

public boolean isNull()

newInstance

public static MessageBytes newInstance()
Construct a new MessageBytes instance

recycle

public void recycle()
Resets the message bytes to an uninitialized (NULL) state.

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 ?

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

setCaseSenitive

public void setCaseSenitive(boolean b)
Configure the case sensitivity

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

setEncoding

public void setEncoding(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.

setFactory

public static void setFactory(MessageBytes.MessageBytesFactory mbf)

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

setString

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

setTime

public void setTime(long t, 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)

Deprecated:

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

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.

toString

public String toString()
Compute the string value
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.