net.sf.saxon.functions
Class JavaExtensionFunctionFactory
java.lang.Object
net.sf.saxon.functions.JavaExtensionFunctionFactory
- ExtensionFunctionFactory, Serializable
public class JavaExtensionFunctionFactory
extends java.lang.Object
This class acts as a factory for creating expressions that call Java extension functions.
A different factory may be registered with the Configuration in order to customize the
behaviour. Alternatively, this factory class can be customized by calling setExtensionFunctionClass
to nominate a subclass of ExtensionFunctionCall to be used to implement calls on extension functions.
Note that this class handles Java extension functions only; a different class,
DotNetExtensionFunctionFactory, is used for .NET extensions.
JavaExtensionFunctionFactory
public JavaExtensionFunctionFactory(Configuration config)
makeExtensionFunctionCall
public Expression makeExtensionFunctionCall(StructuredQName functionName,
Class theClass,
AccessibleObject method,
Expression[] arguments)
Factory method to create an expression that calls a Java extension function.
This is always called at XPath compile time.
functionName
- the name of the functiontheClass
- the Java class containing the extension functionmethod
- The "accessibleObject" representing a constructor, method, or field corresponding
to the extension functionarguments
- Array containing the expressions supplied as arguments to the function call.
- the constructed ExtensionFunctionCall object (a subclass might return any expression
representing the extension function call).
setExtensionFunctionClass
public void setExtensionFunctionClass(Class subclass)
Set the class to be used to represent extension function calls. This must be a subclass
of
ExtensionFunctionCall
subclass
- the subclass of ExtensionFunctionCall to be used