|
JDOM 2.0.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jdom2.output.support.AbstractFormattedWalker
public abstract class AbstractFormattedWalker
This Walker implementation walks a list of Content in a Formatted form of some sort.
The JDOM content can be loosely categorised in to 'Text-like' content (consisting of Text, CDATA, and EntityRef), and everything else. This distinction is significant for for this class and it's sub-classes.
There will be text manipulation, and some (but not necessarily all) Text-like content will be returned as text() instead of next().
The trick in this class is that it deals with the regular content, and delegates the Text-like content to the sub-classes.
Subclasses are tasked with analysing chunks of Text-like content in the
analyzeMultiText(MultiText, int, int)
method. The subclasses are
responsible for adding the relevant text content to the suppliedMultiText
instance in such a way as to result in the correct format.
The Subclass needs to concern itself with only the text portion because this abstract class will ensure the Text-like content is appropriately indented.
Nested Class Summary | |
---|---|
protected class |
AbstractFormattedWalker.MultiText
Collect together the items that constitute formatted Text-like content. |
protected static class |
AbstractFormattedWalker.Trim
Indicate how text content should be added |
Constructor Summary | |
---|---|
AbstractFormattedWalker(java.util.List<? extends Content> content,
FormatStack fstack,
boolean doescape)
Create a Walker that preserves all content in its raw state. |
Method Summary | |
---|---|
protected abstract void |
analyzeMultiText(AbstractFormattedWalker.MultiText mtext,
int offset,
int len)
Add the content at the specified indices to the provided MultiText. |
protected Content |
get(int index)
Get the content at a position in the input content. |
boolean |
hasNext()
Behaves similarly to to a regular Iterator |
boolean |
isAllText()
If all the content in this walker is empty, or if whatever content is available is Text-like. |
boolean |
isAllWhitespace()
If all the content is Text-like ( Walker.isAllText() returns true), and
additionally that any content is either Text or CDATA, and that the
values of these Text/CDATA members are all XML Whitespace. |
boolean |
isCDATA()
If the previous next() method returned null, then this will indicate whether the current text() value is CDATA or regular Text. |
Content |
next()
Similar to an Iterator, but null return values need special treatment. |
java.lang.String |
text()
If the previous call to next() returned null, then this will return the required text to be processed. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AbstractFormattedWalker(java.util.List<? extends Content> content, FormatStack fstack, boolean doescape)
content
- the content to walk.fstack
- the current FormatStackdoescape
- Whether Text values should be escaped.Method Detail |
---|
public final Content next()
Walker
next
in interface Walker
protected abstract void analyzeMultiText(AbstractFormattedWalker.MultiText mtext, int offset, int len)
mtext
- the MultiText to append to.offset
- The first Text-like content to add to the MultiTextlen
- The number of Text-like content items to add.protected final Content get(int index)
analyzeMultiText(MultiText, int, int)
calls.
index
- the index to get the content at.
public final boolean isAllText()
Walker
Text-like content is considered to be Text
, CDATA
,
EntityRef
, or any (potentially mixed) sequence of these types,
but no other types.
isAllText
in interface Walker
public final boolean hasNext()
Walker
hasNext
in interface Walker
public final java.lang.String text()
Walker
text
in interface Walker
public final boolean isCDATA()
Walker
isCDATA
in interface Walker
public final boolean isAllWhitespace()
Walker
Walker.isAllText()
returns true), and
additionally that any content is either Text or CDATA, and that the
values of these Text/CDATA members are all XML Whitespace.
isAllWhitespace
in interface Walker
|
JDOM 2.0.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |