net.sf.saxon.functions

Class JavaExtensionFunctionFactory

Implemented Interfaces:
ExtensionFunctionFactory, Serializable

public class JavaExtensionFunctionFactory
extends java.lang.Object
implements ExtensionFunctionFactory, Serializable

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.

Constructor Summary

JavaExtensionFunctionFactory(Configuration config)

Method Summary

Expression
makeExtensionFunctionCall(StructuredQName functionName, Class theClass, AccessibleObject method, Expression[] arguments)
Factory method to create an expression that calls a Java extension function.
void
setExtensionFunctionClass(Class subclass)
Set the class to be used to represent extension function calls.

Constructor Details

JavaExtensionFunctionFactory

public JavaExtensionFunctionFactory(Configuration config)

Method Details

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.
Parameters:
functionName - the name of the function
theClass - the Java class containing the extension function
method - The "accessibleObject" representing a constructor, method, or field corresponding to the extension function
arguments - Array containing the expressions supplied as arguments to the function call.
Returns:
the constructed ExtensionFunctionCall object (a subclass might return any expression representing the extension function call).

setExtensionFunctionClass

public void setExtensionFunctionClass(Class subclass)
Parameters:
subclass - the subclass of ExtensionFunctionCall to be used