Package org.jaxen

Class SimpleFunctionContext

java.lang.Object
org.jaxen.SimpleFunctionContext
All Implemented Interfaces:
FunctionContext
Direct Known Subclasses:
XPathFunctionContext

public class SimpleFunctionContext extends Object implements FunctionContext
Simple default implementation of FunctionContext.

This is a simple table-based key-lookup implementation for FunctionContext which can be programmatically extended by registering additional functions.

See Also:
  • Field Details

    • functions

      private HashMap functions
      Table of functions.
  • Constructor Details

    • SimpleFunctionContext

      public SimpleFunctionContext()

      Construct an empty function context.

  • Method Details

    • registerFunction

      public void registerFunction(String namespaceURI, String localName, Function function)
      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 this FunctionContext 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 context
      localName - the non-prefixed local portion of the function to be registered with this context
      function - a Function 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 a Function 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 interface FunctionContext
      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 is null.
      prefix - the prefix that was used in the function call expression
      localName - 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