org.apache.xalan.processor
Class ProcessorExsltFunction

java.lang.Object
  extended byorg.apache.xml.utils.UnImplNode
      extended byorg.apache.xalan.templates.ElemTemplateElement
          extended byorg.apache.xalan.processor.XSLTElementProcessor
              extended byorg.apache.xalan.processor.ProcessorTemplateElem
                  extended byorg.apache.xalan.processor.ProcessorExsltFunction
All Implemented Interfaces:
org.w3c.dom.Document, org.w3c.dom.Element, ExpressionNode, org.w3c.dom.Node, org.w3c.dom.NodeList, PrefixResolver, Serializable, javax.xml.transform.SourceLocator, WhitespaceStrippingElementMatcher, XSLTVisitable

public class ProcessorExsltFunction
extends ProcessorTemplateElem

This class processes parse events for an exslt func:function element.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.xalan.processor.XSLTElementProcessor
 
Fields inherited from class org.apache.xalan.templates.ElemTemplateElement
m_docOrderNumber, m_hasVariableDecl, m_parentNode
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
ProcessorExsltFunction()
           
 
Method Summary
(package private)  boolean ancestorIsOk(ElemTemplateElement child)
          Verify that a literal result belongs to a result element, a variable, or a parameter.
protected  void appendAndPush(StylesheetHandler handler, ElemTemplateElement elem)
          Must include; super doesn't suffice!
 void endElement(StylesheetHandler handler, String uri, String localName, String rawName)
          End an ElemExsltFunction, and verify its validity.
 void startElement(StylesheetHandler handler, String uri, String localName, String rawName, org.xml.sax.Attributes attributes)
          Start an ElemExsltFunction.
 void validate(ElemTemplateElement elem, StylesheetHandler handler)
          Non-recursive traversal of FunctionElement tree based on TreeWalker to verify that there are no literal result elements except within a func:result element and that the func:result element does not contain any following siblings except xsl:fallback.
 
Methods inherited from class org.apache.xalan.processor.XSLTElementProcessor
characters, getElemDef, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setElemDef, setPropertiesFromAttributes, setPropertiesFromAttributes, skippedEntity, startNonText, unparsedEntityDecl
 
Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
accept, appendChild, appendChild, callChildVisitors, callChildVisitors, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, compose, containsExcludeResultPrefix, endCompose, error, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDeclaredPrefixes, getDOMBackPointer, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeName, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPrefixes, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXmlSpace, getXSLToken, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, isValidNCName, item, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace
 
Methods inherited from class org.apache.xml.utils.UnImplNode
adoptNode, appendData, cloneNode, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getImplementation, getNamespaceURI, getNodeValue, getOwnerElement, getPrefix, getSpecified, getStandalone, getStrictErrorChecking, getVersion, hasAttribute, hasAttributeNS, hasAttributes, importNode, insertData, isSupported, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceData, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setEncoding, setNodeValue, setPrefix, setStandalone, setStrictErrorChecking, setValue, setVersion, splitText, substringData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcessorExsltFunction

public ProcessorExsltFunction()
Method Detail

startElement

public void startElement(StylesheetHandler handler,
                         String uri,
                         String localName,
                         String rawName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Start an ElemExsltFunction. Verify that it is top level and that it has a name attribute with a namespace.

Overrides:
startElement in class ProcessorTemplateElem
Parameters:
handler - non-null reference to current StylesheetHandler that is constructing the Templates.
uri - The Namespace URI, or an empty string.
localName - The local name (without prefix), or empty string if not namespace processing.
rawName - The qualified name (with prefix).
attributes - The specified or defaulted attributes.
Throws:
org.xml.sax.SAXException

appendAndPush

protected void appendAndPush(StylesheetHandler handler,
                             ElemTemplateElement elem)
                      throws org.xml.sax.SAXException
Must include; super doesn't suffice!

Overrides:
appendAndPush in class ProcessorTemplateElem
Parameters:
handler - non-null reference to current StylesheetHandler that is constructing the Templates.
elem - non-null reference to a the current template element.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.

endElement

public void endElement(StylesheetHandler handler,
                       String uri,
                       String localName,
                       String rawName)
                throws org.xml.sax.SAXException
End an ElemExsltFunction, and verify its validity.

Overrides:
endElement in class ProcessorTemplateElem
Parameters:
handler - non-null reference to current StylesheetHandler that is constructing the Templates.
uri - The Namespace URI, or an empty string.
localName - The local name (without prefix), or empty string if not namespace processing.
rawName - The qualified name (with prefix).
Throws:
org.xml.sax.SAXException

validate

public void validate(ElemTemplateElement elem,
                     StylesheetHandler handler)
              throws org.xml.sax.SAXException
Non-recursive traversal of FunctionElement tree based on TreeWalker to verify that there are no literal result elements except within a func:result element and that the func:result element does not contain any following siblings except xsl:fallback.

Throws:
org.xml.sax.SAXException

ancestorIsOk

boolean ancestorIsOk(ElemTemplateElement child)
Verify that a literal result belongs to a result element, a variable, or a parameter.