|
|||||||||
| Home >> All >> org >> apache >> xerces >> [ utils overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.xerces.utils
Class CharDataChunk

java.lang.Objectorg.apache.xerces.utils.CharDataChunk
- All Implemented Interfaces:
- StringPool.StringProducer
- public final class CharDataChunk
- extends java.lang.Object
- implements StringPool.StringProducer
- extends java.lang.Object
This class provides the character buffers used by some of the reader classes. The instances of this class are reference counted and placed upon a free list for reallocation when no longer in use so that they are reclaimed faster and with less overhead than using the garbage collector.
- Version:
| Field Summary | |
static int |
CHUNK_MASK
|
static int |
CHUNK_SHIFT
Chunk size constants The reader classes use the chunk size directly for better performance. |
static int |
CHUNK_SIZE
|
private int |
fChunk
|
private char[] |
fData
|
private static CharDataChunk |
fgFreeChunks
|
private CharDataChunk |
fNextChunk
|
private CharDataChunk |
fPreviousChunk
|
private int |
fRefCount
|
private StringPool |
fStringPool
|
| Constructor Summary | |
private |
CharDataChunk()
|
| Method Summary | |
private void |
addRef()
|
int |
addString(int offset,
int length)
Add a range from this chunk to the StringPool |
int |
addSymbol(int offset,
int length,
int hashcode)
Add a range from this chunk to the StringPool as a symbol |
void |
append(org.apache.xerces.readers.XMLEntityHandler.CharBuffer charBuffer,
int offset,
int length)
Append data from a CharBuffer to this chunk. |
CharDataChunk |
chunkFor(int offset)
Return the instance that contains the specified offset. |
private void |
clearNextChunk()
|
boolean |
clearPreviousChunk()
Clean the previous chunk reference. |
static CharDataChunk |
createChunk(StringPool stringPool,
CharDataChunk prev)
Public constructor (factory) If there are any free instances available, remove them from the free list and reinitialize them. |
boolean |
equalsString(int offset,
int length,
char[] strChars,
int strOffset,
int strLength)
Compare a range in this chunk and a range in a character array for equality |
CharDataChunk |
nextChunk()
Get the next chunk. |
void |
releaseChunk()
Release the reference to this chunk held by the reader that allocated this instance. |
void |
releaseString(int offset,
int length)
Release a string from this chunk |
private void |
removeRef()
|
void |
setCharArray(char[] data)
Set the character array for this instance. |
private void |
setNextChunk(CharDataChunk nextChunk)
|
char[] |
toCharArray()
Get the character array of this instance. |
java.lang.String |
toString(int offset,
int length)
Return a range of characters as a String. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
CHUNK_SHIFT
public static final int CHUNK_SHIFT
- Chunk size constants
The reader classes use the chunk size directly for better performance.
- See Also:
- Constant Field Values
CHUNK_SIZE
public static final int CHUNK_SIZE
- See Also:
- Constant Field Values
CHUNK_MASK
public static final int CHUNK_MASK
- See Also:
- Constant Field Values
fStringPool
private StringPool fStringPool
fRefCount
private int fRefCount
fChunk
private int fChunk
fData
private char[] fData
fNextChunk
private CharDataChunk fNextChunk
fPreviousChunk
private CharDataChunk fPreviousChunk
fgFreeChunks
private static CharDataChunk fgFreeChunks
| Constructor Detail |
CharDataChunk
private CharDataChunk()
| Method Detail |
createChunk
public static CharDataChunk createChunk(StringPool stringPool, CharDataChunk prev)
- Public constructor (factory)
If there are any free instances available, remove them from the
free list and reinitialize them. If not, allocate a new one.
chunkFor
public CharDataChunk chunkFor(int offset)
- Return the instance that contains the specified offset.
This method must always be invoked on an instance that
contains the specified offset, or an instance the contains
an offset greater than, i.e. after, the instance we are
to return.
toCharArray
public char[] toCharArray()
- Get the character array of this instance.
The reader classes access the data of each instance directly.
This class only exists to manage the lifetime of the references
to each instance. It is not intended to hide from the readers
the fact that each instance contains a buffer of character data.
setCharArray
public void setCharArray(char[] data)
- Set the character array for this instance.
nextChunk
public CharDataChunk nextChunk()
- Get the next chunk.
clearPreviousChunk
public boolean clearPreviousChunk()
- Clean the previous chunk reference.
When a reader has reached a point where it knows that it will no
longer call the addString, addSymbol, or append methods with an
offset that is contained within a chunk that precedes this one,
it will call this method to clear the reference from this chunk to
the one preceding it. This allows the references between chunks
to be dropped as we go and allow the unused instances to be placed
upon the free list for reuse.
releaseChunk
public void releaseChunk()
- Release the reference to this chunk held by the reader that allocated
this instance. Called at end of input to release the last chunk in the
list used by the reader.
addString
public int addString(int offset,
int length)
- Add a range from this chunk to the
StringPool
addSymbol
public int addSymbol(int offset,
int length,
int hashcode)
- Add a range from this chunk to the
StringPoolas a symbol
append
public void append(org.apache.xerces.readers.XMLEntityHandler.CharBuffer charBuffer,
int offset,
int length)
- Append data from a
CharBufferto this chunk.
toString
public java.lang.String toString(int offset, int length)
- Return a range of characters as a
String.- Specified by:
toStringin interfaceStringPool.StringProducer
releaseString
public void releaseString(int offset,
int length)
- Release a string from this chunk
- Specified by:
releaseStringin interfaceStringPool.StringProducer
equalsString
public boolean equalsString(int offset,
int length,
char[] strChars,
int strOffset,
int strLength)
- Compare a range in this chunk and a range in a character array for equality
- Specified by:
equalsStringin interfaceStringPool.StringProducer
addRef
private void addRef()
removeRef
private void removeRef()
clearNextChunk
private void clearNextChunk()
setNextChunk
private void setNextChunk(CharDataChunk nextChunk)
|
|||||||||
| Home >> All >> org >> apache >> xerces >> [ utils overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.apache.xerces.utils.CharDataChunk