Class FunctionTable

java.lang.Object
org.htmlunit.xpath.compiler.FunctionTable

public class FunctionTable extends Object
The function table for XPath.
  • Field Details

    • FUNC_CURRENT

      public static final int FUNC_CURRENT
      The 'current()' id.
      See Also:
    • FUNC_LAST

      public static final int FUNC_LAST
      The 'last()' id.
      See Also:
    • FUNC_POSITION

      public static final int FUNC_POSITION
      The 'position()' id.
      See Also:
    • FUNC_COUNT

      public static final int FUNC_COUNT
      The 'count()' id.
      See Also:
    • FUNC_ID

      public static final int FUNC_ID
      The 'id()' id.
      See Also:
    • FUNC_LOCAL_PART

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

      public static final int FUNC_NAMESPACE
      The 'namespace-uri()' id.
      See Also:
    • FUNC_QNAME

      public static final int FUNC_QNAME
      The 'name()' id.
      See Also:
    • FUNC_NOT

      public static final int FUNC_NOT
      The 'not()' id.
      See Also:
    • FUNC_TRUE

      public static final int FUNC_TRUE
      The 'true()' id.
      See Also:
    • FUNC_FALSE

      public static final int FUNC_FALSE
      The 'false()' id.
      See Also:
    • FUNC_BOOLEAN

      public static final int FUNC_BOOLEAN
      The 'boolean()' id.
      See Also:
    • FUNC_NUMBER

      public static final int FUNC_NUMBER
      The 'number()' id.
      See Also:
    • FUNC_FLOOR

      public static final int FUNC_FLOOR
      The 'floor()' id.
      See Also:
    • FUNC_CEILING

      public static final int FUNC_CEILING
      The 'ceiling()' id.
      See Also:
    • FUNC_ROUND

      public static final int FUNC_ROUND
      The 'round()' id.
      See Also:
    • FUNC_SUM

      public static final int FUNC_SUM
      The 'sum()' id.
      See Also:
    • FUNC_STRING

      public static final int FUNC_STRING
      The 'string()' id.
      See Also:
    • FUNC_STARTS_WITH

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

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

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

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

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

      public static final int FUNC_TRANSLATE
      The 'translate()' id.
      See Also:
    • FUNC_CONCAT

      public static final int FUNC_CONCAT
      The 'concat()' id.
      See Also:
    • FUNC_SUBSTRING

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

      public static final int FUNC_STRING_LENGTH
      The 'string-length()' id.
      See Also:
    • FUNC_LANG

      public static final int FUNC_LANG
      The 'lang()' id.
      See Also:
    • m_functions

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

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

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

      private final HashMap<String,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:
    • NUM_ALLOWABLE_ADDINS

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

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

    • FunctionTable

      public FunctionTable()
  • Method Details

    • getFunctionName

      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 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:
      TransformerException - if ClassNotFoundException, IllegalAccessException, or InstantiationException is thrown.
    • getFunctionID

      Object getFunctionID(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(String name, 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(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.