FileDocCategorySizeDatePackage
FuncLoader.javaAPI DocJava SE 6 API3605Tue Jun 10 00:23:14 BST 2008com.sun.org.apache.xpath.internal.compiler

FuncLoader

public class FuncLoader extends Object
Lazy load of functions into the function table as needed, so we don't have to load all the functions allowed in XPath and XSLT on startup.
xsl.usage
advanced

Fields Summary
private int
m_funcID
The function ID, which may correspond to one of the FUNC_XXX values found in {@link com.sun.org.apache.xpath.internal.compiler.FunctionTable}, but may be a value installed by an external module.
private String
m_funcName
The class name of the function. Must not be null.
Constructors Summary
public FuncLoader(String funcName, int funcID)
Construct a function loader

param
funcName The class name of the {com.sun.org.apache.xpath.internal.functions.Function} class, which, if it does not have a '.' in it, is assumed to be relative to 'com.sun.org.apache.xpath.internal.functions'.
param
funcID The function ID, which may correspond to one of the FUNC_XXX values found in {@link com.sun.org.apache.xpath.internal.compiler.FunctionTable}, but may be a value installed by an external module.


    super();

    m_funcID = funcID;
    m_funcName = funcName;
  
Methods Summary
com.sun.org.apache.xpath.internal.functions.FunctiongetFunction()
Get a Function instance that this instance is liaisoning for.

return
non-null reference to Function derivative.
throws
javax.xml.transform.TransformerException if ClassNotFoundException, IllegalAccessException, or InstantiationException is thrown.

    try
    {
      String className = m_funcName;
      if (className.indexOf(".") < 0) {
        className = "com.sun.org.apache.xpath.internal.functions." + className;
      }
      //hack for loading only built-in function classes.
      String subString = className.substring(0,className.lastIndexOf('."));
      if(!(subString.equals ("com.sun.org.apache.xalan.internal.templates") ||
           subString.equals ("com.sun.org.apache.xpath.internal.functions"))) {
            throw new TransformerException("Application can't install his own xpath function.");
      }

      return (Function) ObjectFactory.newInstance(
          className, ObjectFactory.findClassLoader(), true);
      
    }
    catch (ObjectFactory.ConfigurationError e)
    {
      throw new TransformerException(e.getException());
    }
  
public java.lang.StringgetName()
Get the local class name of the function class. If function name does not have a '.' in it, it is assumed to be relative to 'com.sun.org.apache.xpath.internal.functions'.

return
The class name of the {com.sun.org.apache.xpath.internal.functions.Function} class.

    return m_funcName;