| java.lang.Object org.apache.commons.jxpath.PackageFunctions
PackageFunctions | public class PackageFunctions implements Functions(Code) | | 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()"
- Equivalent to
new java.util.Date()
"util:Collections.singleton('foo')"
- Equivalent to
java.util.Collections.singleton("foo")
"util:substring('foo', 1, 2)"
- Equivalent to
"foo".substring(1, 2) . Note that in
this case, the class prefix is not used. JXPath does not check that
the first parameter of the function (the method target) is in fact
a member of the package described by this PackageFunctions object.
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.
author: Dmitri Plotnikov version: $Revision: 1.14 $ $Date: 2004/04/04 23:16:23 $ |
getFunction | public Function getFunction(String namespace, String name, Object[] parameters)(Code) | | Returns a Function, if any, for the specified namespace,
name and parameter types.
Parameters: namespace - - if it is not the same as specified in theconstruction, this method returns null Parameters: name - - name of the method, which can one these forms: - methodname, if invoking a method on an object passed as thefirst parameter
- Classname.new, if looking for a constructor
- subpackage.subpackage.Classname.new, if looking for aconstructor in a subpackage
- Classname.methodname, if looking for a static method
- subpackage.subpackage.Classname.methodname, if looking for astatic method of a class in a subpackage
a MethodFunction, a ConstructorFunction or null if no functionis found |
getUsedNamespaces | public Set getUsedNamespaces()(Code) | | Returns the namespace specified in the constructor
|
|
|