Class JavaExtensionFunctionFactory

  • All Implemented Interfaces:
    ExtensionFunctionFactory

    public class JavaExtensionFunctionFactory
    extends java.lang.Object
    implements ExtensionFunctionFactory
    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 Detail

      • JavaExtensionFunctionFactory

        public JavaExtensionFunctionFactory​(Configuration config)
    • Method Detail

      • setExtensionFunctionClass

        public void setExtensionFunctionClass​(java.lang.Class subclass)
        Set the class to be used to represent extension function calls. This must be a subclass of JavaExtensionFunctionCall
        Parameters:
        subclass - the subclass of ExtensionFunctionCall to be used
      • makeExtensionFunctionCall

        public Expression makeExtensionFunctionCall​(StructuredQName functionName,
                                                    java.lang.Class theClass,
                                                    java.lang.reflect.AccessibleObject method,
                                                    Expression[] arguments,
                                                    Configuration config)
        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.
        config - the Configuration
        Returns:
        the constructed ExtensionFunctionCall object (a subclass might return any expression representing the extension function call).