Class JavaExtensionFunctionFactory

java.lang.Object
com.saxonica.config.JavaExtensionFunctionFactory
All Implemented Interfaces:
ExtensionFunctionFactory

public class JavaExtensionFunctionFactory extends 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 Details

    • JavaExtensionFunctionFactory

      public JavaExtensionFunctionFactory(Configuration config)
  • Method Details

    • setExtensionFunctionClass

      public void setExtensionFunctionClass(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, Class theClass, 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).