org.apache.commons.jxpath
Class ClassFunctions

java.lang.Object
  extended by org.apache.commons.jxpath.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
private static java.lang.Object[] EMPTY_ARRAY
           
private  java.lang.Class functionClass
           
private  java.lang.String namespace
           
 
Constructor Summary
ClassFunctions(java.lang.Class functionClass, java.lang.String namespace)
          Create a new ClassFunctions.
 
Method Summary
 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.