|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.xalan.transformer.QueuedEvents | +--org.apache.xalan.transformer.ResultTreeHandler
This class is a layer between the direct calls to the result tree content handler, and the transformer. For one thing, we have to delay the call to getContentHandler().startElement(name, atts) because of the xsl:attribute and xsl:copy calls. In other words, the attributes have to be fully collected before you can call startElement.
Field Summary | |
ClonerToResultTree |
m_cloner
This class clones nodes to the result tree. |
Constructor Summary | |
ResultTreeHandler()
Null constructor for object pooling. |
|
ResultTreeHandler(TransformerImpl transformer,
ContentHandler realHandler)
Create a new result tree handler. |
Method Summary | |
void |
addAttribute(Attr attr)
Copy an DOM attribute to the created output element, executing attribute templates as need be, and processing the xsl:use attribute. |
void |
addAttribute(java.lang.String uri,
java.lang.String localName,
java.lang.String rawName,
java.lang.String type,
java.lang.String value)
Add an attribute to the end of the list. |
void |
addAttributes(Node src)
Copy DOM attributes to the result element. |
void |
characters(char[] ch,
int start,
int length)
Bottleneck the characters event. |
void |
cloneToResultTree(Node node,
boolean shouldCloneAttributes)
Clone an element with or without children. |
void |
comment(char[] ch,
int start,
int length)
Bottleneck the comment event. |
void |
comment(java.lang.String data)
Bottleneck the comment event. |
void |
endCDATA()
End the CDATA characters. |
void |
endDocument()
Bottleneck the endDocument event. |
void |
endDTD()
End the DTD. |
void |
endElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name)
Bottleneck the endElement event. |
void |
endEntity(java.lang.String name)
End an entity. |
void |
endPrefixMapping(java.lang.String prefix)
End the scope of a prefix-URI mapping. |
void |
entityReference(java.lang.String name)
Entity reference event. |
void |
flushPending()
Flush the pending element. |
void |
flushPending(int type)
Flush the pending element. |
ContentHandler |
getContentHandler()
Return the current content handler. |
NamespaceSupport |
getNamespaceSupport()
Get the NamespaceSupport object. |
java.lang.String |
getNewUniqueNSPrefix()
Get new unique namespace prefix. |
MutableAttrListImpl |
getPendingAttributes()
Get the pending attributes. |
java.lang.String |
getPrefix(java.lang.String namespace)
Given a namespace, try and find a prefix. |
int |
getUniqueNSValue()
Get a unique namespace value. |
java.lang.String |
getURI(java.lang.String prefix)
Given a prefix, return the namespace, |
void |
ignorableWhitespace(char[] ch,
int start,
int length)
Bottleneck the ignorableWhitespace event. |
void |
init(TransformerImpl transformer,
ContentHandler realHandler)
Initializer method. |
boolean |
isDefinedNSDecl(Attr attr)
Returns whether a namespace is defined |
boolean |
isDefinedNSDecl(java.lang.String rawName,
java.lang.String value)
Return whether or not a namespace declaration is defined |
boolean |
isElementPending()
Tell if an element is pending, to be output to the result tree. |
void |
outputResultTreeFragment(XObject obj,
XPathContext support)
Given a result tree fragment, walk the tree and output it to the result stream. |
void |
processingInstruction(java.lang.String target,
java.lang.String data)
Bottleneck the processingInstruction event. |
void |
processNSDecls(Node src)
Copy xmlns: attributes in if not already in scope. |
void |
setContentHandler(ContentHandler ch)
Set the current content handler. |
void |
setDocumentLocator(Locator locator)
To fullfill the FormatterListener interface... |
void |
skippedEntity(java.lang.String name)
Receive notification of a skipped entity. |
void |
startCDATA()
Start the CDATACharacters. |
void |
startDocument()
Bottleneck the startDocument event. |
void |
startDTD(java.lang.String s1,
java.lang.String s2,
java.lang.String s3)
Start the DTD. |
void |
startElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name)
Bottleneck the startElement event. |
void |
startElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name,
Attributes atts)
Bottleneck the startElement event. |
void |
startEntity(java.lang.String name)
Start an entity. |
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
Begin the scope of a prefix-URI Namespace mapping. |
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri,
boolean shouldFlush)
Begin the scope of a prefix-URI Namespace mapping. |
Methods inherited from class org.apache.xalan.transformer.QueuedEvents |
reset |
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
public ClonerToResultTree m_cloner
Constructor Detail |
public ResultTreeHandler()
public ResultTreeHandler(TransformerImpl transformer, ContentHandler realHandler)
transformer
- non-null transformer instancerealHandler
- Content Handler instanceMethod Detail |
public void init(TransformerImpl transformer, ContentHandler realHandler)
transformer
- non-null transformer instancerealHandler
- Content Handler instancepublic void startDocument() throws SAXException
public void endDocument() throws SAXException
public void startElement(java.lang.String ns, java.lang.String localName, java.lang.String name) throws SAXException
ns
- Namespace URI of elementlocalName
- Local part of qname of elementname
- Name of elementpublic void startElement(java.lang.String ns, java.lang.String localName, java.lang.String name, Attributes atts) throws SAXException
ns
- Namespace URI of elementlocalName
- Local part of qname of elementname
- Name of elementatts
- List of attributes for the elementpublic void endElement(java.lang.String ns, java.lang.String localName, java.lang.String name) throws SAXException
ns
- Namespace URI of elementlocalName
- Local part of qname of elementname
- Name of elementpublic void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws SAXException
The information from this event is not necessary for normal Namespace processing: the SAX XML reader will automatically replace prefixes for element and attribute names when the http://xml.org/sax/features/namespaces feature is true (the default).
There are cases, however, when applications need to use prefixes in character data or in attribute values, where they cannot safely be expanded automatically; the start/endPrefixMapping event supplies the information to the application to expand prefixes in those contexts itself, if necessary.
Note that start/endPrefixMapping events are not guaranteed to be properly nested relative to each-other: all startPrefixMapping events will occur before the corresponding startElement event, and all endPrefixMapping events will occur after the corresponding endElement event, but their order is not guaranteed.
prefix
- The Namespace prefix being declared.uri
- The Namespace URI the prefix is mapped to.endPrefixMapping(java.lang.String)
,
startElement(java.lang.String, java.lang.String, java.lang.String)
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri, boolean shouldFlush) throws SAXException
prefix
- The Namespace prefix being declared.uri
- The Namespace URI the prefix is mapped to.shouldFlush
- Indicate whether pending events needs
to be flushed firstpublic void endPrefixMapping(java.lang.String prefix) throws SAXException
See startPrefixMapping for details. This event will always occur after the corresponding endElement event, but the order of endPrefixMapping events is not otherwise guaranteed.
prefix
- The prefix that was being mapping.startPrefixMapping(java.lang.String, java.lang.String)
,
endElement(java.lang.String, java.lang.String, java.lang.String)
public void characters(char[] ch, int start, int length) throws SAXException
ch
- Array of characters to processstart
- start of characters in the arraylength
- Number of characters in the arraypublic void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
ch
- Array of characters to processstart
- start of characters in the arraylength
- Number of characters in the arraypublic void processingInstruction(java.lang.String target, java.lang.String data) throws SAXException
target
- Processing instruction target namedata
- Processing instruction datapublic void comment(java.lang.String data) throws SAXException
data
- Comment datapublic void comment(char[] ch, int start, int length) throws SAXException
ch
- Character array with comment datastart
- start of characters in the arraylength
- number of characters in the arraypublic void entityReference(java.lang.String name) throws SAXException
name
- Name of entitypublic void startEntity(java.lang.String name) throws SAXException
name
- Name of the entitypublic void endEntity(java.lang.String name) throws SAXException
name
- Name of the entitypublic void startDTD(java.lang.String s1, java.lang.String s2, java.lang.String s3) throws SAXException
s1
- The document type name.s2
- The declared public identifier for the
external DTD subset, or null if none was declared.s3
- The declared system identifier for the
external DTD subset, or null if none was declared.public void endDTD() throws SAXException
public void startCDATA() throws SAXException
public void endCDATA() throws SAXException
public void skippedEntity(java.lang.String name) throws SAXException
The Parser will invoke this method once for each entity skipped. Non-validating processors may skip entities if they have not seen the declarations (because, for example, the entity was declared in an external DTD subset). All processors may skip external entities, depending on the values of the http://xml.org/sax/features/external-general-entities and the http://xml.org/sax/features/external-parameter-entities properties.
name
- The name of the skipped entity. If it is a
parameter entity, the name will begin with '%'.public void flushPending() throws SAXException
public void flushPending(int type) throws SAXException
type
- Event typepublic void outputResultTreeFragment(XObject obj, XPathContext support) throws SAXException
obj
- Result tree fragment objectsupport
- XPath context for the result tree fragmentpublic void cloneToResultTree(Node node, boolean shouldCloneAttributes) throws SAXException
node
- Element to cloneshouldCloneAttributes
- Whether or not to clone with childrenpublic void setDocumentLocator(Locator locator)
locator
- Document locatorpublic void processNSDecls(Node src) throws TransformerException
src
- Source Nodepublic java.lang.String getURI(java.lang.String prefix)
prefix
- Given prefix namepublic java.lang.String getPrefix(java.lang.String namespace)
namespace
- Given namespace URIpublic NamespaceSupport getNamespaceSupport()
public ContentHandler getContentHandler()
setContentHandler(org.xml.sax.ContentHandler)
public void setContentHandler(ContentHandler ch)
ch
- Content Handler to be setgetContentHandler()
public int getUniqueNSValue()
public java.lang.String getNewUniqueNSPrefix()
public MutableAttrListImpl getPendingAttributes()
public void addAttribute(java.lang.String uri, java.lang.String localName, java.lang.String rawName, java.lang.String type, java.lang.String value) throws TransformerException
Do not pass in xmlns decls to this function!
For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
uri
- The Namespace URI, or the empty string if
none is available or Namespace processing is not
being performed.localName
- The local name, or the empty string if
Namespace processing is not being performed.rawName
- The raw XML 1.0 name, or the empty string
if raw names are not available.type
- The attribute type as a string.value
- The attribute value.public boolean isDefinedNSDecl(java.lang.String rawName, java.lang.String value)
rawName
- Raw name of namespace elementvalue
- URI of given namespacepublic boolean isDefinedNSDecl(Attr attr)
attr
- Namespace attribute nodepublic void addAttribute(Attr attr) throws TransformerException
attr
- Attribute node to add to result treepublic void addAttributes(Node src) throws TransformerException
src
- Source node with the attributespublic boolean isElementPending()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |