Package org.jaxen

Class SimpleFunctionContext

  • All Implemented Interfaces:
    FunctionContext
    Direct Known Subclasses:
    XPathFunctionContext

    public class SimpleFunctionContext
    extends java.lang.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.

    Author:
    bob mcwhirter
    See Also:
    XPathFunctionContext
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleFunctionContext()
      Construct an empty function context.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Function getFunction​(java.lang.String namespaceURI, java.lang.String prefix, java.lang.String localName)
      An implementation should return a Function implementation object based on the namespace URI and local name of the function-call expression.
      void registerFunction​(java.lang.String namespaceURI, java.lang.String localName, Function function)
      Register a new function.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SimpleFunctionContext

        public SimpleFunctionContext()

        Construct an empty function context.

    • Method Detail

      • registerFunction

        public void registerFunction​(java.lang.String namespaceURI,
                                     java.lang.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​(java.lang.String namespaceURI,
                                    java.lang.String prefix,
                                    java.lang.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