public final class MessageBytes
extends java.lang.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.
duplicate
public void duplicate(MessageBytes src)
throws IOException
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.
s
- the String to compare
- true if the comparison succeeded, false otherwise
equalsIgnoreCase
public boolean equalsIgnoreCase(String s)
Compares the message bytes to the specified String object.
s
- the String to compare
- 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.
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()
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(String s)
indexOf
public int indexOf(String s,
int starting)
indexOf
public int indexOf(char c)
indexOf
public int indexOf(char c,
int starting)
Returns true if the message bytes starts with the specified string.
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.
b
- the ascii bytesoff
- the start offset of the byteslen
- 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[]
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.
setInt
public void setInt(int i)
Set the buffer to the representation of an int
setString
public void setString(String s)
Set the content to be a string
setTime
public void setTime(long t)
setTime
public void setTime(long t,
DateFormat df)
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.
startsWith
public boolean startsWith(String s)
Returns true if the message bytes starts with the specified string.
s
- the string
startsWithIgnoreCase
public boolean startsWithIgnoreCase(String s,
int pos)
Returns true if the message bytes starts with the specified string.
s
- the string
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