public class PackageFunctions extends Object implements Functions
We can now use XPaths like:new PackageFunctions("java.util.", "util")
"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)
. 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.
Constructor and Description |
---|
PackageFunctions(String classPrefix,
String namespace)
Create a new PackageFunctions.
|
Modifier and Type | Method and Description |
---|---|
Function |
getFunction(String namespace,
String name,
Object[] parameters)
Returns a
Function , if found, for the specified namespace,
name and parameter types. |
Set |
getUsedNamespaces()
Returns the namespace specified in the constructor
|
public PackageFunctions(String classPrefix, String namespace)
classPrefix
- class prefixnamespace
- namespace Stringpublic Set getUsedNamespaces()
getUsedNamespaces
in interface Functions
public Function getFunction(String namespace, String name, Object[] parameters)
Function
, if found, 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:
parameters
- Object[] of parametersCopyright © 2001–2015 The Apache Software Foundation. All rights reserved.