|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.enhydra.xml.io.BaseDOMFormatter
Base class with common functionally XML and HTML DOM formatting functionality.
Field Summary | |
protected static char |
ATTR_QUOTE_CHAR
Quote character to use for attribute values. |
protected static String |
ATTR_QUOTE_CHAR_ENTITY_REF
Entity reference for attribute value quote character. |
protected DocumentType |
fDocType
DocumentType from document. |
protected Document |
fDocument
Document being formatted. |
protected int |
fDynamicFormattedElementCount
Count of element open tags that were written not using preformatted text. |
protected OutputOptions |
fOptions
The output options. |
protected Writer |
fOut
Output writer. |
protected boolean |
fPreFormatMode
Are we doing pre-formatting? |
protected int |
fPreFormattedElementCount
Count of preformatted element open tags that were written. |
protected boolean |
fPreserveSpace
Are we preserving space where not otherwise specified by the document, eg... |
protected boolean |
fPrettyPrinting
Are we pretty-printing? |
protected boolean |
fProcessingAttr
Are we currently outputting an attribute or its children? |
protected String |
fPublicId
Public id to use for DOCTYPE, or null if none. |
protected String |
fSystemId
System id to use for DOCTYPE, or null if none. |
protected DOMTraversal |
fTraverser
DOM traverser. |
protected boolean |
fUsePreFormattedAttrText
Should pre-formatted text be use for descendents of attribute nodes. |
protected boolean |
fUsePreFormattedElements
Should pre-formatted Elements be written. |
protected boolean |
fUsePreFormattedText
Should pre-formatted text be written. |
protected static int |
MAX_ENTITY_QUICK_CHECK_CHAR
Maximum character value in an entity quick-check table. |
Constructor Summary | |
protected |
BaseDOMFormatter(Node node,
OutputOptions outputOptions,
boolean forPreFormatting,
String defaultEncoding,
boolean[] entityQuickCheck)
Constructor. |
Method Summary | |
(package private) static void |
Static initializer. |
protected abstract String |
getCharacterEntity(char textChar)
Get a character entity name for a character. |
int |
getDynamicFormattedElementCount()
Get the count of element open tags that were written not using preformatted text. |
int |
getDynamicFormattedTextCount()
Get the count of text nodes that were written not using preformatted text. |
String |
getMIMEEncoding()
Get the MIME-preferred encoding, determined from the OutputOptions and the formatter type. |
int |
getPreFormattedElementCount()
Get the count of preformatted element open tags that were written. |
int |
getPreFormattedTextCount()
Get the count of preformatted text nodes that were written. |
void |
handleComment(Comment comment)
Handler called for Comment nodes. |
void |
handleEntity(Entity entity)
Handler called for Entity nodes; should never be called. |
void |
handleEntityReference(EntityReference entityRef)
Handler called for EntityReference nodes. |
void |
handleNotation(Notation notation)
Handler called for Notation nodes; should never be called. |
void |
handleText(Text text)
Handler called for Text nodes. |
String |
preFormatNode(Node node)
Format the contents of a node that can later be returned by a node implementing FormattedText. |
protected void |
printIndent()
Print indentation to the current level. |
boolean |
usedPreFormattedElements()
Determine if preformatted element open tags were used for the last document formatted. |
boolean |
usedPreFormattedText()
Determine if preformatted text was used for the last document formatted. |
void |
write(Node node,
Writer writer)
Format a Node and children to the specified writer. |
protected void |
writeAttributeValue(Attr attr)
Write an attribute value. |
protected void |
writeln()
Write a newline |
protected abstract void |
writeOpenTag(Element element,
String tagName,
boolean hasChildren)
Method to write an open tag, including attributes. |
protected void |
writeText(String text)
Write a text string, encoding document type-specific character entities. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.enhydra.xml.dom.DOMTraversal.Handler |
handleAttr, handleCDATASection, handleDocument, handleDocumentFragment, handleDocumentType, handleElement, handleProcessingInstruction |
Field Detail |
protected static final int MAX_ENTITY_QUICK_CHECK_CHAR
protected static final char ATTR_QUOTE_CHAR
protected static final String ATTR_QUOTE_CHAR_ENTITY_REF
protected final OutputOptions fOptions
protected Writer fOut
protected final DOMTraversal fTraverser
protected final boolean fPreFormatMode
protected final boolean fUsePreFormattedText
protected final boolean fUsePreFormattedAttrText
protected final boolean fUsePreFormattedElements
protected int fPreFormattedElementCount
protected int fDynamicFormattedElementCount
protected boolean fProcessingAttr
protected final boolean fPrettyPrinting
protected final boolean fPreserveSpace
protected final Document fDocument
protected final DocumentType fDocType
protected String fPublicId
protected String fSystemId
Constructor Detail |
protected BaseDOMFormatter(Node node, OutputOptions outputOptions, boolean forPreFormatting, String defaultEncoding, boolean[] entityQuickCheck)
node
- Any node of the document that this formatter will be
associated with. This can also be an XMLC Document object (XMLObject).options
- The output options.defaultEncoding
- The default encoding for this format.forPreFormatting
- Is this going to be used for preformatting?entityQuickCheck
- Document-type specific table that provides
a quick check of the need to encode that character as a character
entity reference. This table MUST include the double-quote character,
as it it used to quote attribute values.Method Detail |
static void()
public final String getMIMEEncoding()
Formatter
getMIMEEncoding
in interface Formatter
Formatter.getMIMEEncoding()
public boolean usedPreFormattedText()
Formatter
usedPreFormattedText
in interface Formatter
Formatter.usedPreFormattedText()
public final int getPreFormattedTextCount()
getPreFormattedTextCount
in interface Formatter
public final int getDynamicFormattedTextCount()
getDynamicFormattedTextCount
in interface Formatter
public final boolean usedPreFormattedElements()
Formatter
usedPreFormattedElements
in interface Formatter
Formatter.usedPreFormattedElements()
public final int getPreFormattedElementCount()
getPreFormattedElementCount
in interface Formatter
public final int getDynamicFormattedElementCount()
getDynamicFormattedElementCount
in interface Formatter
protected final void writeln() throws IOException
protected final void printIndent() throws IOException
protected abstract String getCharacterEntity(char textChar)
protected final void writeText(String text) throws IOException
public final void handleEntity(Entity entity)
handleEntity
in interface DOMTraversal.Handler
DOMTraversal.Handler.handleEntity(org.w3c.dom.Entity)
public final void handleNotation(Notation notation)
handleNotation
in interface DOMTraversal.Handler
DOMTraversal.Handler.handleNotation(org.w3c.dom.Notation)
public final void handleEntityReference(EntityReference entityRef) throws IOException
handleEntityReference
in interface DOMTraversal.Handler
DOMTraversal.Handler.handleEntityReference(org.w3c.dom.EntityReference)
public final void handleComment(Comment comment) throws IOException
handleComment
in interface DOMTraversal.Handler
DOMTraversal.Handler.handleComment(org.w3c.dom.Comment)
public void handleText(Text text) throws IOException
handleText
in interface DOMTraversal.Handler
DOMTraversal.Handler.handleText(org.w3c.dom.Text)
protected final void writeAttributeValue(Attr attr) throws IOException
protected abstract void writeOpenTag(Element element, String tagName, boolean hasChildren) throws IOException
public final String preFormatNode(Node node)
Formatter
preFormatNode
in interface Formatter
Formatter.preFormatNode(org.w3c.dom.Node)
public final void write(Node node, Writer writer) throws IOException
write
in interface Formatter
Formatter.write(org.w3c.dom.Node, java.io.Writer)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |