Class SimpleFunctionContext
- All Implemented Interfaces:
FunctionContext
- Direct Known Subclasses:
XPathFunctionContext
FunctionContext
.
This is a simple table-based key-lookup implementation
for FunctionContext
which can be programmatically
extended by registering additional functions.
- Author:
- bob mcwhirter
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetFunction
(String namespaceURI, String prefix, String localName) An implementation should return aFunction
implementation object based on the namespace URI and local name of the function-call expression.void
registerFunction
(String namespaceURI, String localName, Function function) Register a new function.
-
Constructor Details
-
SimpleFunctionContext
public SimpleFunctionContext()Construct an empty function context.
-
-
Method Details
-
registerFunction
Register a new function.By registering a new function, any XPath expression that utilizes this
FunctionContext
may refer to and use the new function.Functions may exist either in a namespace or not. Namespace prefix-to-URI resolution is the responsibility of a
NamespaceContext
. Within thisFunctionContext
functions are only referenced using the URI, not the prefix.The namespace URI of a function may be
null
to indicate that it exists without a namespace.- Parameters:
namespaceURI
- the namespace URI of the function to be registered with this contextlocalName
- the non-prefixed local portion of the function to be registered with this contextfunction
- aFunction
implementation object to be used when evaluating the function
-
getFunction
public Function getFunction(String namespaceURI, String prefix, String localName) throws UnresolvableException Description copied from interface:FunctionContext
An implementation should return aFunction
implementation object based on the namespace URI and local name of the function-call expression.It must not use the prefix parameter to select an implementation, because a prefix could be bound to any namespace; the prefix parameter could be used in debugging output or other generated information. The prefix may otherwise be completely ignored.
- Specified by:
getFunction
in interfaceFunctionContext
- Parameters:
namespaceURI
- the namespace URI to which the prefix parameter is bound in the XPath expression. If the function call expression had no prefix, the namespace URI isnull
.prefix
- the prefix that was used in the function call expressionlocalName
- the local name of the function-call expression. If there is no prefix, then this is the whole name of the function.- Returns:
- a Function implementation object.
- Throws:
UnresolvableException
- when the function cannot be resolved
-