Package org.glassfish.grizzly.http.util
Class MessageBytes
- java.lang.Object
-
- org.glassfish.grizzly.http.util.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMessageBytes.MessageBytesFactory
-
Field Summary
Fields Modifier and Type Field Description static intT_BYTESgetType() is T_STR if the the object used to create the MessageBytes was a byte[]static intT_CHARSgetType() is T_STR if the the object used to create the MessageBytes was a char[]static intT_NULLstatic intT_STRgetType() is T_STR if the the object used to create the MessageBytes was a String
-
Constructor Summary
Constructors Constructor Description MessageBytes()Deprecated.Use static newInstance() in order to allow future hooks.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidduplicate(MessageBytes src)Copy the src into this MessageBytes, allocating more space if neededbooleanequals(Object obj)booleanequals(String s)Compares the message bytes to the specified String object.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 valueintgetLength()Returns the length of the original buffer.longgetLong()Convert the buffer to an long, cache the valueStringgetString()Returns the string value.intgetType()Return the type of the original content.inthashCode()intindexOf(char c)intindexOf(char c, int starting)Returns true if the message bytes starts with the specified string.intindexOf(String s)intindexOf(String s, int starting)intindexOfIgnoreCase(String s, int starting)booleanisNull()static MessageBytesnewInstance()Construct a new MessageBytes instancevoidrecycle()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 sensitivityvoidsetChars(char[] c, int off, int len)Sets the content to be a char[]voidsetCharset(Charset enc)Set the encoding.static voidsetFactory(MessageBytes.MessageBytesFactory mbf)voidsetInt(int i)Set the buffer to the representation of an intvoidsetLong(long l)Set the buffer to the representation of an longvoidsetString(String s)Set the content to be a stringbooleanstartsWith(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_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
@Deprecated public MessageBytes()
Deprecated.Use static newInstance() in order to allow future hooks.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 bytesoff- the start offset of the byteslen- the length of the bytes
-
setCharset
public void setCharset(Charset 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[]- Parameters:
c- the bytesoff- the start offset of the byteslen- the length of the bytes
-
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(String s)
Set the content to be a string
-
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 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(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
-
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 stringpos- The start position
-
indexOf
public int indexOf(char c)
-
indexOf
public int indexOf(String s, int starting)
-
indexOf
public int indexOf(String s)
-
indexOfIgnoreCase
public int indexOfIgnoreCase(String s, int starting)
-
indexOf
public int indexOf(char c, int starting)Returns true if the message bytes starts with the specified string.- Parameters:
c- the characterstarting- The start position
-
duplicate
public void duplicate(MessageBytes src) throws IOException
Copy the src into this MessageBytes, allocating more space if needed- Throws:
IOException
-
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
-
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)
-
-