Class ClassFunctions

  • All Implemented Interfaces:
    Functions

    public class ClassFunctions
    extends java.lang.Object
    implements Functions
    Extension functions provided by a Java class. Let's say we declared a ClassFunction like this:
         new ClassFunctions(Integer.class, "int")
     
    We can now use XPaths like:
    "int:new(3)"
    Equivalent to new Integer(3)
    "int:getInteger('foo')"
    Equivalent to Integer.getInteger("foo")
    "int:floatValue(int:new(4))"
    Equivalent to new Integer(4).floatValue()

    If the first argument of a method is ExpressionContext, the expression context in which the function is evaluated is passed to the method.

    Version:
    $Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
    Author:
    Dmitri Plotnikov
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.Object[] EMPTY_ARRAY  
      private java.lang.Class functionClass  
      private java.lang.String namespace  
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassFunctions​(java.lang.Class functionClass, java.lang.String namespace)
      Create a new ClassFunctions.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Function getFunction​(java.lang.String namespace, java.lang.String name, java.lang.Object[] parameters)
      Returns a Function, if any, for the specified namespace, name and parameter types.
      java.util.Set getUsedNamespaces()
      Returns a set of one namespace - the one specified in the constructor.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_ARRAY

        private static final java.lang.Object[] EMPTY_ARRAY
      • functionClass

        private java.lang.Class functionClass
      • namespace

        private java.lang.String namespace
    • Constructor Detail

      • ClassFunctions

        public ClassFunctions​(java.lang.Class functionClass,
                              java.lang.String namespace)
        Create a new ClassFunctions.
        Parameters:
        functionClass - Class providing the functions
        namespace - assigned ns
    • Method Detail

      • getUsedNamespaces

        public java.util.Set getUsedNamespaces()
        Returns a set of one namespace - the one specified in the constructor.
        Specified by:
        getUsedNamespaces in interface Functions
        Returns:
        a singleton
      • getFunction

        public Function getFunction​(java.lang.String namespace,
                                    java.lang.String name,
                                    java.lang.Object[] parameters)
        Returns a Function, if any, for the specified namespace, name and parameter types.
        Specified by:
        getFunction in interface Functions
        Parameters:
        namespace - if it is not the namespace specified in the constructor, the method returns null
        name - is a function name or "new" for a constructor.
        parameters - Object[] of parameters
        Returns:
        a MethodFunction, a ConstructorFunction or null if there is no such function.