Package org.htmlunit.xpath.compiler
Class FunctionTable
java.lang.Object
org.htmlunit.xpath.compiler.FunctionTable
The function table for XPath.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The 'boolean()' id.static final int
The 'ceiling()' id.static final int
The 'concat()' id.static final int
The 'contains()' id.static final int
The 'count()' id.static final int
The 'current()' id.static final int
The 'false()' id.static final int
The 'floor()' id.static final int
The 'id()' id.static final int
The 'lang()' id.static final int
The 'last()' id.static final int
The 'local-name()' id.static final int
The 'namespace-uri()' id.static final int
The 'normalize-space()' id.static final int
The 'not()' id.static final int
The 'number()' id.static final int
The 'position()' id.static final int
The 'name()' id.static final int
The 'round()' id.static final int
The 'starts-with()' id.static final int
The 'string()' id.static final int
The 'string-length()' id.static final int
The 'substring()' id.static final int
The 'substring-after()' id.static final int
The 'substring-before()' id.static final int
The 'sum()' id.static final int
The 'translate()' id.static final int
The 'true()' id.private int
The index to the next free function index.Table of function name to function ID associations.Table of function name to function ID associations for customized functionsprivate static final Class<?>[]
The function table.private final Class<?>[]
The function table contains customized functionsprivate static final int
Number of built-in functions that may be added.private static final int
Number of built in functions. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
functionAvailable
(String methName) Tell if a built-in, non-namespaced function is available.(package private) Function
getFunction
(int which) Obtain a new Function object from a function ID.(package private) Object
getFunctionID
(String key) Obtain a function ID from a given function name(package private) String
getFunctionName
(int funcID) Return the name of the a function in the static table.int
installFunction
(String name, Class<?> func) Install a built-in function.
-
Field Details
-
FUNC_CURRENT
public static final int FUNC_CURRENTThe 'current()' id.- See Also:
-
FUNC_LAST
public static final int FUNC_LASTThe 'last()' id.- See Also:
-
FUNC_POSITION
public static final int FUNC_POSITIONThe 'position()' id.- See Also:
-
FUNC_COUNT
public static final int FUNC_COUNTThe 'count()' id.- See Also:
-
FUNC_ID
public static final int FUNC_IDThe 'id()' id.- See Also:
-
FUNC_LOCAL_PART
public static final int FUNC_LOCAL_PARTThe 'local-name()' id.- See Also:
-
FUNC_NAMESPACE
public static final int FUNC_NAMESPACEThe 'namespace-uri()' id.- See Also:
-
FUNC_QNAME
public static final int FUNC_QNAMEThe 'name()' id.- See Also:
-
FUNC_NOT
public static final int FUNC_NOTThe 'not()' id.- See Also:
-
FUNC_TRUE
public static final int FUNC_TRUEThe 'true()' id.- See Also:
-
FUNC_FALSE
public static final int FUNC_FALSEThe 'false()' id.- See Also:
-
FUNC_BOOLEAN
public static final int FUNC_BOOLEANThe 'boolean()' id.- See Also:
-
FUNC_NUMBER
public static final int FUNC_NUMBERThe 'number()' id.- See Also:
-
FUNC_FLOOR
public static final int FUNC_FLOORThe 'floor()' id.- See Also:
-
FUNC_CEILING
public static final int FUNC_CEILINGThe 'ceiling()' id.- See Also:
-
FUNC_ROUND
public static final int FUNC_ROUNDThe 'round()' id.- See Also:
-
FUNC_SUM
public static final int FUNC_SUMThe 'sum()' id.- See Also:
-
FUNC_STRING
public static final int FUNC_STRINGThe 'string()' id.- See Also:
-
FUNC_STARTS_WITH
public static final int FUNC_STARTS_WITHThe 'starts-with()' id.- See Also:
-
FUNC_CONTAINS
public static final int FUNC_CONTAINSThe 'contains()' id.- See Also:
-
FUNC_SUBSTRING_BEFORE
public static final int FUNC_SUBSTRING_BEFOREThe 'substring-before()' id.- See Also:
-
FUNC_SUBSTRING_AFTER
public static final int FUNC_SUBSTRING_AFTERThe 'substring-after()' id.- See Also:
-
FUNC_NORMALIZE_SPACE
public static final int FUNC_NORMALIZE_SPACEThe 'normalize-space()' id.- See Also:
-
FUNC_TRANSLATE
public static final int FUNC_TRANSLATEThe 'translate()' id.- See Also:
-
FUNC_CONCAT
public static final int FUNC_CONCATThe 'concat()' id.- See Also:
-
FUNC_SUBSTRING
public static final int FUNC_SUBSTRINGThe 'substring()' id.- See Also:
-
FUNC_STRING_LENGTH
public static final int FUNC_STRING_LENGTHThe 'string-length()' id.- See Also:
-
FUNC_LANG
public static final int FUNC_LANGThe 'lang()' id.- See Also:
-
m_functions
The function table. -
m_functionID
Table of function name to function ID associations. -
m_functions_customer
The function table contains customized functions -
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_FUNCSNumber 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_ADDINSNumber of built-in functions that may be added.- See Also:
-
m_funcNextFreeIndex
private int m_funcNextFreeIndexThe index to the next free function index.
-
-
Constructor Details
-
FunctionTable
public FunctionTable()
-
-
Method Details
-
getFunctionName
Return the name of the a function in the static table. Needed to avoid making the table publicly available. -
getFunction
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 inFunctionTable
, 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
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
Install a built-in function.- Parameters:
name
- The unqualified name of the function, must not be nullfunc
- A Implementation of an XPath Function object.- Returns:
- the position of the function in the internal index.
-
functionAvailable
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.
-