FuncLoaderpublic 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. |
Fields Summary |
---|
private int | m_funcIDThe 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_funcNameThe class name of the function. Must not be null. |
Constructors Summary |
---|
public FuncLoader(String funcName, int funcID)Construct a function loader
super();
m_funcID = funcID;
m_funcName = funcName;
|
Methods Summary |
---|
com.sun.org.apache.xpath.internal.functions.Function | getFunction()Get a Function instance that this instance is liaisoning for.
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.String | getName()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 m_funcName;
|
|