Package org.apache.tomcat.util.buf
Class MessageBytes
java.lang.Object
org.apache.tomcat.util.buf.MessageBytes
- All Implemented Interfaces:
- Serializable,- Cloneable
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:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final char[]static final intgetType() is T_BYTES if the the object used to create the MessageBytes was a byte[].static final intgetType() is T_CHARS if the the object used to create the MessageBytes was a char[].static final intstatic final intgetType() is T_STR if the the object used to create the MessageBytes was a String.
- 
Method SummaryModifier and TypeMethodDescriptionclone()voidduplicate(MessageBytes src) Copy the src into this MessageBytes, allocating more space if needed.booleanbooleanCompares the message bytes to the specified String object.booleanequals(MessageBytes mb) booleanCompares 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.intReturns the length of the original buffer.longgetLong()Convert the buffer to a long, cache the value.Returns the string value.intgetType()Return the type of the original content.inthashCode()intintintindexOfIgnoreCase(String s, int starting) booleanisNull()static MessageBytesConstruct a new MessageBytes instance.voidrecycle()Resets the message bytes to an uninitialized (NULL) state.voidsetBytes(byte[] b, int off, int len) Sets the content to the specified subarray of bytes.voidsetChars(char[] c, int off, int len) Sets the content to be a char[]voidsetCharset(Charset charset) Set the Charset used for string<->byte conversions.voidsetLong(long l) Set the buffer to the representation of a long.voidSet the content to be a stringbooleanstartsWithIgnoreCase(String s, int pos) voidtoBytes()Convert to bytes and fill the ByteChunk with the converted value.voidtoChars()Convert to char[] and fill the CharChunk.toString()Compute the string value.Convert to String (if not already of the String type) and then return the String value.
- 
Field Details- 
T_NULLpublic static final int T_NULL- See Also:
 
- 
T_STRpublic static final int T_STRgetType() is T_STR if the the object used to create the MessageBytes was a String.- See Also:
 
- 
T_BYTESpublic static final int T_BYTESgetType() is T_BYTES if the the object used to create the MessageBytes was a byte[].- See Also:
 
- 
T_CHARSpublic static final int T_CHARSgetType() is T_CHARS if the the object used to create the MessageBytes was a char[].- See Also:
 
- 
EMPTY_CHAR_ARRAYpublic static final char[] EMPTY_CHAR_ARRAY
 
- 
- 
Method Details- 
newInstanceConstruct a new MessageBytes instance.- Returns:
- the instance
 
- 
clone- Overrides:
- clonein class- Object
- Throws:
- CloneNotSupportedException
 
- 
isNullpublic boolean isNull()
- 
recyclepublic void recycle()Resets the message bytes to an uninitialized (NULL) state.
- 
setBytespublic 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
 
- 
setCharspublic 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
 
- 
setStringSet the content to be a string- Parameters:
- s- The string
 
- 
toStringCompute the string value.
- 
toStringTypeConvert to String (if not already of the String type) and then return the String value.- Returns:
- The current value as a String
 
- 
getTypepublic int getType()Return the type of the original content. Can be T_STR, T_BYTES, T_CHARS or T_NULL- Returns:
- the type
 
- 
getByteChunkReturns the byte chunk, representing the byte[] and offset/length. Valid only if T_BYTES or after a conversion was made.- Returns:
- the byte chunk
 
- 
getCharChunkReturns the char chunk, representing the char[] and offset/length. Valid only if T_CHARS or after a conversion was made.- Returns:
- the char chunk
 
- 
getStringReturns the string value. Valid only if T_STR or after a conversion was made.- Returns:
- the string
 
- 
getCharset- Returns:
- the Charset used for string<->byte conversions.
 
- 
setCharsetSet the Charset used for string<->byte conversions.- Parameters:
- charset- The charset
 
- 
toBytespublic void toBytes()Convert to bytes and fill the ByteChunk with the converted value.
- 
toCharspublic void toChars()Convert to char[] and fill the CharChunk.Note: The conversion from bytes is not optimised - it converts to String first. However, Tomcat doesn't call this method to convert from bytes so there is no benefit from optimising that path. 
- 
getLengthpublic int getLength()Returns the length of the original buffer.Note: The length in bytes may be different from the length in chars. - Returns:
- the length
 
- 
equalsCompares the message bytes to the specified String object.- Parameters:
- s- the String to compare
- Returns:
- trueif the comparison succeeded,- falseotherwise
 
- 
equalsIgnoreCaseCompares the message bytes to the specified String object.- Parameters:
- s- the String to compare
- Returns:
- trueif the comparison succeeded,- falseotherwise
 
- 
equals
- 
equals
- 
startsWithIgnoreCase- Parameters:
- s- the string
- pos- The start position
- Returns:
- trueif the message bytes starts with the specified string.
 
- 
hashCodepublic int hashCode()
- 
indexOf
- 
indexOf
- 
indexOfIgnoreCase
- 
duplicateCopy the src into this MessageBytes, allocating more space if needed.- Parameters:
- src- The source
- Throws:
- IOException- Writing overflow data to the output channel failed
 
- 
setLongpublic void setLong(long l) Set the buffer to the representation of a long.- Parameters:
- l- The long
 
- 
getLongpublic long getLong()Convert the buffer to a long, cache the value. Used for headers conversion.- Returns:
- the long value
 
 
-