Class FunctionTable


  • public class FunctionTable
    extends java.lang.Object
    The function table for XPath.
    • Field Detail

      • FUNC_POSITION

        public static final int FUNC_POSITION
        The 'position()' id.
        See Also:
        Constant Field Values
      • FUNC_LOCAL_PART

        public static final int FUNC_LOCAL_PART
        The 'local-name()' id.
        See Also:
        Constant Field Values
      • FUNC_NAMESPACE

        public static final int FUNC_NAMESPACE
        The 'namespace-uri()' id.
        See Also:
        Constant Field Values
      • FUNC_STARTS_WITH

        public static final int FUNC_STARTS_WITH
        The 'starts-with()' id.
        See Also:
        Constant Field Values
      • FUNC_CONTAINS

        public static final int FUNC_CONTAINS
        The 'contains()' id.
        See Also:
        Constant Field Values
      • FUNC_SUBSTRING_BEFORE

        public static final int FUNC_SUBSTRING_BEFORE
        The 'substring-before()' id.
        See Also:
        Constant Field Values
      • FUNC_SUBSTRING_AFTER

        public static final int FUNC_SUBSTRING_AFTER
        The 'substring-after()' id.
        See Also:
        Constant Field Values
      • FUNC_NORMALIZE_SPACE

        public static final int FUNC_NORMALIZE_SPACE
        The 'normalize-space()' id.
        See Also:
        Constant Field Values
      • FUNC_TRANSLATE

        public static final int FUNC_TRANSLATE
        The 'translate()' id.
        See Also:
        Constant Field Values
      • FUNC_SUBSTRING

        public static final int FUNC_SUBSTRING
        The 'substring()' id.
        See Also:
        Constant Field Values
      • FUNC_STRING_LENGTH

        public static final int FUNC_STRING_LENGTH
        The 'string-length()' id.
        See Also:
        Constant Field Values
      • m_functions

        private static final java.lang.Class<?>[] m_functions
        The function table.
      • m_functionID

        private static final java.util.HashMap<java.lang.String,​java.lang.Integer> m_functionID
        Table of function name to function ID associations.
      • m_functions_customer

        private final java.lang.Class<?>[] m_functions_customer
        The function table contains customized functions
      • m_functionID_customer

        private final java.util.HashMap<java.lang.String,​java.lang.Integer> m_functionID_customer
        Table of function name to function ID associations for customized functions
      • NUM_BUILT_IN_FUNCS

        private static final int NUM_BUILT_IN_FUNCS
        Number of built in functions. Be sure to update this as built-in functions are added.
        See Also:
        Constant Field Values
      • NUM_ALLOWABLE_ADDINS

        private static final int NUM_ALLOWABLE_ADDINS
        Number of built-in functions that may be added.
        See Also:
        Constant Field Values
      • m_funcNextFreeIndex

        private int m_funcNextFreeIndex
        The index to the next free function index.
    • Constructor Detail

      • FunctionTable

        public FunctionTable()
    • Method Detail

      • getFunctionName

        java.lang.String getFunctionName​(int funcID)
        Return the name of the a function in the static table. Needed to avoid making the table publicly available.
      • getFunction

        Function getFunction​(int which)
                      throws javax.xml.transform.TransformerException
        Obtain a new Function object from a function ID.
        Parameters:
        which - The function ID, which may correspond to one of the FUNC_XXX values found in FunctionTable, but may be a value installed by an external module.
        Returns:
        a a new Function instance.
        Throws:
        javax.xml.transform.TransformerException - if ClassNotFoundException, IllegalAccessException, or InstantiationException is thrown.
      • getFunctionID

        java.lang.Object getFunctionID​(java.lang.String key)
        Obtain a function ID from a given function name
        Parameters:
        key - the function name in a java.lang.String format.
        Returns:
        a function ID, which may correspond to one of the FUNC_XXX values found in FunctionTable, but may be a value installed by an external module.
      • installFunction

        public int installFunction​(java.lang.String name,
                                   java.lang.Class<?> func)
        Install a built-in function.
        Parameters:
        name - The unqualified name of the function, must not be null
        func - A Implementation of an XPath Function object.
        Returns:
        the position of the function in the internal index.
      • functionAvailable

        public boolean functionAvailable​(java.lang.String methName)
        Tell if a built-in, non-namespaced function is available.
        Parameters:
        methName - The local name of the function.
        Returns:
        True if the function can be executed.