public final class CharChunk
extends java.lang.Object
implements Cloneable, Serializable
Utilities to manipluate char chunks. While String is
the easiest way to manipulate chars ( search, substrings, etc),
it is known to not be the most efficient solution - Strings are
designed as imutable and secure objects.
allocate
public void allocate(int initial,
int limit)
append
public void append(String s,
int off,
int len)
throws IOException
Append a string to the buffer
append
public void append(StringBuffer sb)
throws IOException
Add data to the buffer
append
public void append(char b)
throws IOException
append
public void append(CharChunk src)
throws IOException
append
public void append(src[] ,
int off,
int len)
throws IOException
Add data to the buffer
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
equals
public boolean equals(b2[] ,
int off2,
int len2)
equals
public boolean equals(b2[] ,
int off2,
int len2)
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
flushBuffer
public void flushBuffer()
throws IOException
getBuffer
public char[] getBuffer()
getChars
public char[] getChars()
getEnd
public int getEnd()
getInt
public int getInt()
getLength
public int getLength()
Returns the length of the bytes.
getLimit
public int getLimit()
getOffset
public int getOffset()
getStart
public int getStart()
Returns the start offset of the bytes.
For output this is the end of the buffer.
hashIgnoreCase
public int hashIgnoreCase()
indexOf
public int indexOf(String src,
int srcOff,
int srcLen,
int myOff)
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.
indexOf
public static int indexOf(chars[] ,
int off,
int cend,
char qq)
isNull
public boolean isNull()
recycle
public void recycle()
Resets the message bytes to an uninitialized state.
setCharInputChannel
public void setCharInputChannel(CharChunk.CharInputChannel in)
When the buffer is empty, read the data from the input channel.
setCharOutputChannel
public void setCharOutputChannel(CharChunk.CharOutputChannel out)
When the buffer is full, write the data to the output channel.
Also used when large amount of data is appended.
If not set, the buffer will grow to the limit.
setChars
public void setChars(char[] c,
int off,
int len)
setEnd
public void setEnd(int i)
setLimit
public void setLimit(int limit)
Maximum amount of data in this buffer.
If -1 or not set, the buffer will grow undefinitely.
Can be smaller than the current buffer size ( which will not shrink ).
When the limit is reached, the buffer will be flushed ( if out is set )
or throw exception.
setOffset
public void setOffset(int off)
Returns the start offset of the bytes.
setOptimizedWrite
public void setOptimizedWrite(boolean optimizedWrite)
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
substract
public int substract()
throws IOException
substract
public int substract(CharChunk src)
throws IOException
substract
public int substract(src[] ,
int off,
int len)
throws IOException
toString
public String toString()