Package org.apache.commons.jxpath

# Class ClassFunctions

java.lang.Object
org.apache.commons.jxpath.ClassFunctions

All Implemented Interfaces:
  `Functions`

public class ClassFunctions extends 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 `Integer.valueOf(3)`
`"int:getInteger('foo')"`
  Equivalent to `Integer.getInteger("foo")`
`"int:floatValue(int:new(4))"`
  Equivalent to `Integer.valueOf(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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClassFunctions(Class functionClass, String namespace)`
  Constructs a new ClassFunctions.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Function`
  `getFunction(String namespace, String name, Object[] parameters)`
  Returns a `Function`, if any, for the specified namespace, name and parameter types.
  `Set<String>`
  `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`

- ## Constructor Details

  - ### ClassFunctions

    public ClassFunctions(Class functionClass, String namespace)
    Constructs a new ClassFunctions.
    Parameters:
      `functionClass` - Class providing the functions
      `namespace` - assigned ns

- ## Method Details

  - ### getFunction

    public Function getFunction(String namespace, String name, 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.

  - ### getUsedNamespaces

    public Set<String> getUsedNamespaces()
    Returns a set of one namespace - the one specified in the constructor.
    Specified by:
      `getUsedNamespaces` in interface `Functions`
    Returns:
      a singleton