Class ExtensionHandlerGeneral

java.lang.Object
org.apache.xalan.extensions.ExtensionHandler
org.apache.xalan.extensions.ExtensionHandlerGeneral

public class ExtensionHandlerGeneral extends ExtensionHandler
Class handling an extension namespace for XPath. Provides functions to test a function's existence and call a function
Author:
Sanjiva Weerawarana (sanjiva@watson.ibm.com)
  • Constructor Details

    • ExtensionHandlerGeneral

      public ExtensionHandlerGeneral(String namespaceUri, StringVector elemNames, StringVector funcNames, String scriptLang, String scriptSrcURL, String scriptSrc, String systemId) throws TransformerException
      Construct a new extension namespace handler given all the information needed.
      Parameters:
      namespaceUri - the extension namespace URI that I'm implementing
      elemNames - Vector of element names
      funcNames - string containing list of functions of extension NS
      scriptLang - Scripting language of implementation
      scriptSrcURL - URL of source script
      scriptSrc - the actual script code (if any)
      systemId -
      Throws:
      TransformerException
  • Method Details

    • isFunctionAvailable

      public boolean isFunctionAvailable(String function)
      Tests whether a certain function name is known within this namespace.
      Specified by:
      isFunctionAvailable in class ExtensionHandler
      Parameters:
      function - name of the function being tested
      Returns:
      true if its known, false if not.
    • isElementAvailable

      public boolean isElementAvailable(String element)
      Tests whether a certain element name is known within this namespace.
      Specified by:
      isElementAvailable in class ExtensionHandler
      Parameters:
      element - name of the element being tested
      Returns:
      true if its known, false if not.
    • callFunction

      public Object callFunction(String funcName, Vector args, Object methodKey, ExpressionContext exprContext) throws TransformerException
      Process a call to a function.
      Specified by:
      callFunction in class ExtensionHandler
      Parameters:
      funcName - Function name.
      args - The arguments of the function call.
      methodKey - A key that uniquely identifies this class and method call.
      exprContext - The context in which this expression is being executed.
      Returns:
      the return value of the function evaluation.
      Throws:
      TransformerException - if parsing trouble
    • callFunction

      public Object callFunction(FuncExtFunction extFunction, Vector args, ExpressionContext exprContext) throws TransformerException
      Process a call to an XPath extension function
      Specified by:
      callFunction in class ExtensionHandler
      Parameters:
      extFunction - The XPath extension function
      args - The arguments of the function call.
      exprContext - The context in which this expression is being executed.
      Returns:
      the return value of the function evaluation.
      Throws:
      TransformerException
    • processElement

      public void processElement(String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, Object methodKey) throws TransformerException, IOException
      Process a call to this extension namespace via an element. As a side effect, the results are sent to the TransformerImpl's result tree.
      Specified by:
      processElement in class ExtensionHandler
      Parameters:
      localPart - Element name's local part.
      element - The extension element being processed.
      transformer - Handle to TransformerImpl.
      stylesheetTree - The compiled stylesheet tree.
      methodKey - A key that uniquely identifies this class and method call.
      Throws:
      XSLProcessorException - thrown if something goes wrong while running the extension handler.
      MalformedURLException - if loading trouble
      FileNotFoundException - if loading trouble
      IOException - if loading trouble
      TransformerException - if parsing trouble