org.apache.commons.jxpath
Class PackageFunctions
java.lang.Object
org.apache.commons.jxpath.PackageFunctions
- Functions
public class PackageFunctions
extends java.lang.Object
Extension functions provided by Java classes. The class prefix specified
in the constructor is used when a constructor or a static method is called.
Usually, a class prefix is a package name (hence the name of this class).
Let's say, we declared a PackageFunction like this:
new PackageFunctions("java.util.", "util")
We can now use XPaths like:
"util:Date.new()"
new java.util.Date()
"util:Collections.singleton('foo')"
java.util.Collections.singleton("foo")
"util:substring('foo', 1, 2)"
"foo".substring(1, 2)
If the first argument of a method or constructor is ExpressionContext, the
expression context in which the function is evaluated is passed to
the method.
There is one PackageFunctions object registered by default with each
JXPathContext. It does not have a namespace and uses no class prefix.
The existence of this object allows us to use XPaths like:
"java.util.Date.new()"
and
"length('foo')"
without the explicit registration of any extension functions.
$Revision: 1.14 $ $Date: 2004/04/04 23:16:23 $
Function | getFunction(String namespace, String name, Object[] parameters) - Returns a Function, if any, for the specified namespace,
name and parameter types.
|
Set | getUsedNamespaces() - Returns the namespace specified in the constructor
|
PackageFunctions
public PackageFunctions(String classPrefix,
String namespace)
getFunction
public Function getFunction(String namespace,
String name,
Object[] parameters)
Returns a Function, if any, for the specified namespace,
name and parameter types.
- getFunction in interface Functions
namespace
- - if it is not the same as specified in the
construction, this method returns nullname
- - name of the method, which can one these forms:
- methodname, if invoking a method on an object passed as the
first parameter
- Classname.new, if looking for a constructor
- subpackage.subpackage.Classname.new, if looking for a
constructor in a subpackage
- Classname.methodname, if looking for a static method
- subpackage.subpackage.Classname.methodname, if looking for a
static method of a class in a subpackage
- a MethodFunction, a ConstructorFunction or null if no function
is found
getUsedNamespaces
public Set getUsedNamespaces()
Returns the namespace specified in the constructor
- getUsedNamespaces in interface Functions