Package com.fasterxml.aalto.util
Class TextBuilder
- java.lang.Object
-
- com.fasterxml.aalto.util.TextBuilder
-
public final class TextBuilder extends java.lang.ObjectClass conceptually similar toStringBuilder, but that allows for bit more efficient building, using segmented internal buffers, and direct access to these buffers.
-
-
Field Summary
Fields Modifier and Type Field Description static intMAX_INDENT_SPACESstatic intMAX_INDENT_TABS
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappend(char c)voidappend(char[] c, int start, int len)voidappend(java.lang.String str)voidappendSurrogate(int surr)char[]contentsAsArray()java.lang.StringcontentsAsString()intcontentsToArray(int srcStart, char[] dst, int dstStart, int len)static TextBuildercreateRecyclableBuffer(ReaderConfig cfg)intdecodeElements(org.codehaus.stax2.typed.TypedArrayDecoder tad, boolean reset)Method called by the stream reader to decode space-separated tokens that are part of the current text event (contents of which are stored within this buffer), using given decoder.booleanequalsString(java.lang.String str)Note: it is assumed that this method is not used often enough to be a bottleneck, or for long segments.char[]finishCurrentSegment()voidfireSaxCharacterEvents(org.xml.sax.ContentHandler h)This is a specialized "accessor" method, which is basically to fire SAX characters() events in an optimal way, based on which internal buffers are being usedvoidfireSaxCommentEvent(org.xml.sax.ext.LexicalHandler h)voidfireSaxSpaceEvents(org.xml.sax.ContentHandler h)char[]getBufferWithoutReset()intgetCurrentLength()char[]getTextBuffer()booleanisAllWhitespace()intrawContentsTo(java.io.Writer w)Method that will stream contents of this buffer into specified Writer.voidrecycle(boolean force)Method called to indicate that the underlying buffers should now be recycled if they haven't yet been recycled.voidresetForBinaryDecode(org.codehaus.stax2.typed.Base64Variant v, org.codehaus.stax2.ri.typed.CharArrayBase64Decoder dec, boolean firstChunk)Method called to initialize given base64 decoder with data contained in this text buffer (for the current event).voidresetWithChar(char c)Method called to initialize the buffer with just a single charchar[]resetWithEmpty()Method called to clear out any content text buffer may have, and initializes and returns the first segment to add characters to.voidresetWithIndentation(int indCharCount, char indChar)voidresetWithSurrogate(int c)voidsetCurrentLength(int len)intsize()java.lang.StringtoString()Note: calling this method may not be as efficient as callingcontentsAsString(), since it is guaranteed that resulting String is NOT cached (to ensure we see no stale data)
-
-
-
Field Detail
-
MAX_INDENT_SPACES
public static final int MAX_INDENT_SPACES
- See Also:
- Constant Field Values
-
MAX_INDENT_TABS
public static final int MAX_INDENT_TABS
- See Also:
- Constant Field Values
-
-
Method Detail
-
createRecyclableBuffer
public static TextBuilder createRecyclableBuffer(ReaderConfig cfg)
-
recycle
public void recycle(boolean force)
Method called to indicate that the underlying buffers should now be recycled if they haven't yet been recycled. Although caller can still use this text buffer, it is not advisable to call this method if that is likely, since next time a buffer is needed, buffers need to reallocated. Note: calling this method automatically also clears contents of the buffer.
-
resetWithEmpty
public char[] resetWithEmpty()
Method called to clear out any content text buffer may have, and initializes and returns the first segment to add characters to.
-
resetWithIndentation
public void resetWithIndentation(int indCharCount, char indChar)
-
resetWithChar
public void resetWithChar(char c)
Method called to initialize the buffer with just a single char
-
resetWithSurrogate
public void resetWithSurrogate(int c)
-
getBufferWithoutReset
public char[] getBufferWithoutReset()
-
size
public int size()
- Returns:
- Number of characters currently stored by this collector
-
getTextBuffer
public char[] getTextBuffer()
-
contentsAsString
public java.lang.String contentsAsString()
-
contentsAsArray
public char[] contentsAsArray()
-
contentsToArray
public int contentsToArray(int srcStart, char[] dst, int dstStart, int len)
-
rawContentsTo
public int rawContentsTo(java.io.Writer w) throws java.io.IOExceptionMethod that will stream contents of this buffer into specified Writer.- Throws:
java.io.IOException
-
isAllWhitespace
public boolean isAllWhitespace()
-
equalsString
public boolean equalsString(java.lang.String str)
Note: it is assumed that this method is not used often enough to be a bottleneck, or for long segments. Based on this, it is optimized for common simple cases where there is only one single character segment to use; fallback for other cases is to create such segment.
-
fireSaxCharacterEvents
public void fireSaxCharacterEvents(org.xml.sax.ContentHandler h) throws org.xml.sax.SAXExceptionThis is a specialized "accessor" method, which is basically to fire SAX characters() events in an optimal way, based on which internal buffers are being used- Throws:
org.xml.sax.SAXException
-
fireSaxSpaceEvents
public void fireSaxSpaceEvents(org.xml.sax.ContentHandler h) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
fireSaxCommentEvent
public void fireSaxCommentEvent(org.xml.sax.ext.LexicalHandler h) throws org.xml.sax.SAXException- Throws:
org.xml.sax.SAXException
-
append
public void append(char c)
-
appendSurrogate
public void appendSurrogate(int surr)
-
append
public void append(char[] c, int start, int len)
-
append
public void append(java.lang.String str)
-
getCurrentLength
public int getCurrentLength()
-
setCurrentLength
public void setCurrentLength(int len)
-
finishCurrentSegment
public char[] finishCurrentSegment()
-
decodeElements
public int decodeElements(org.codehaus.stax2.typed.TypedArrayDecoder tad, boolean reset) throws org.codehaus.stax2.typed.TypedXMLStreamExceptionMethod called by the stream reader to decode space-separated tokens that are part of the current text event (contents of which are stored within this buffer), using given decoder.- Throws:
org.codehaus.stax2.typed.TypedXMLStreamException
-
resetForBinaryDecode
public void resetForBinaryDecode(org.codehaus.stax2.typed.Base64Variant v, org.codehaus.stax2.ri.typed.CharArrayBase64Decoder dec, boolean firstChunk)Method called to initialize given base64 decoder with data contained in this text buffer (for the current event).
-
toString
public java.lang.String toString()
Note: calling this method may not be as efficient as callingcontentsAsString(), since it is guaranteed that resulting String is NOT cached (to ensure we see no stale data)- Overrides:
toStringin classjava.lang.Object
-
-