net.sf.saxon.dotnet

Class DotNetExtensionFunctionFactory

Implemented Interfaces:
ExtensionFunctionFactory, Serializable

public class DotNetExtensionFunctionFactory
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

DotNetExtensionFunctionFactory(Configuration config)

Method Summary

Expression
makeExtensionFunctionCall(StructuredQName functionName, cli.System.Type theClass, MemberInfo 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

DotNetExtensionFunctionFactory

public DotNetExtensionFunctionFactory(Configuration config)

Method Details

makeExtensionFunctionCall

public Expression makeExtensionFunctionCall(StructuredQName functionName,
                                            cli.System.Type theClass,
                                            MemberInfo method,
                                            Expression[] arguments)
Factory method to create an expression that calls a Java extension function. This is always called at XPath compile time.
Parameters:
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