Package org.htmlunit.xpath.functions
Class FunctionDef1Arg
- java.lang.Object
-
- org.htmlunit.xpath.Expression
-
- org.htmlunit.xpath.functions.Function
-
- org.htmlunit.xpath.functions.FunctionOneArg
-
- org.htmlunit.xpath.functions.FunctionDef1Arg
-
- All Implemented Interfaces:
javax.xml.transform.SourceLocator
,ExpressionNode
,XPathVisitable
- Direct Known Subclasses:
FuncLocalPart
,FuncNamespace
,FuncNormalizeSpace
,FuncNumber
,FuncQname
,FuncString
,FuncStringLength
public class FunctionDef1Arg extends FunctionOneArg
Base class for functions that accept one argument that can be defaulted if not specified.
-
-
Field Summary
-
Fields inherited from class org.htmlunit.xpath.functions.FunctionOneArg
m_arg0
-
-
Constructor Summary
Constructors Constructor Description FunctionDef1Arg()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.void
checkNumberArgs(int argNum)
Check that the number of arguments passed to this function is correct.protected int
getArg0AsNode(XPathContext xctxt)
Execute the first argument expression that is expected to return a nodeset.protected double
getArg0AsNumber(XPathContext xctxt)
Execute the first argument expression that is expected to return a number.protected XString
getArg0AsString(XPathContext xctxt)
Execute the first argument expression that is expected to return a string.protected void
reportWrongNumberArgs()
Constructs and throws a WrongNumberArgException with the appropriate message for this function object.-
Methods inherited from class org.htmlunit.xpath.functions.FunctionOneArg
callArgVisitors, deepEquals, setArg
-
Methods inherited from class org.htmlunit.xpath.functions.Function
callVisitors, execute, postCompileStep
-
Methods inherited from class org.htmlunit.xpath.Expression
asIterator, asNode, assertion, bool, error, execute, execute, execute, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isSameClass, isStableNumber, num
-
-
-
-
Method Detail
-
getArg0AsNode
protected int getArg0AsNode(XPathContext xctxt) throws javax.xml.transform.TransformerException
Execute the first argument expression that is expected to return a nodeset. If the argument is null, then return the current context node.- Parameters:
xctxt
- Runtime XPath context.- Returns:
- The first node of the executed nodeset, or the current context node if the first argument is null.
- Throws:
javax.xml.transform.TransformerException
- if an error occurs while executing the argument expression.
-
getArg0AsString
protected XString getArg0AsString(XPathContext xctxt) throws javax.xml.transform.TransformerException
Execute the first argument expression that is expected to return a string. If the argument is null, then get the string value from the current context node.- Parameters:
xctxt
- Runtime XPath context.- Returns:
- The string value of the first argument, or the string value of the current context node if the first argument is null.
- Throws:
javax.xml.transform.TransformerException
- if an error occurs while executing the argument expression.
-
getArg0AsNumber
protected double getArg0AsNumber(XPathContext xctxt) throws javax.xml.transform.TransformerException
Execute the first argument expression that is expected to return a number. If the argument is null, then get the number value from the current context node.- Parameters:
xctxt
- Runtime XPath context.- Returns:
- The number value of the first argument, or the number value of the current context node if the first argument is null.
- Throws:
javax.xml.transform.TransformerException
- if an error occurs while executing the argument expression.
-
checkNumberArgs
public void checkNumberArgs(int argNum) throws WrongNumberArgsException
Check that the number of arguments passed to this function is correct. This method is meant to be overloaded by derived classes, to check for the number of arguments for a specific function type. This method is called by the compiler for static number of arguments checking.- Overrides:
checkNumberArgs
in classFunctionOneArg
- Parameters:
argNum
- The number of arguments that is being passed to the function.- Throws:
WrongNumberArgsException
- if any
-
reportWrongNumberArgs
protected void reportWrongNumberArgs() throws WrongNumberArgsException
Constructs and throws a WrongNumberArgException with the appropriate message for this function object. This method is meant to be overloaded by derived classes so that the message will be as specific as possible.- Overrides:
reportWrongNumberArgs
in classFunctionOneArg
- Throws:
WrongNumberArgsException
- if any
-
canTraverseOutsideSubtree
public boolean canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.- Overrides:
canTraverseOutsideSubtree
in classFunctionOneArg
- Returns:
- true if traversal outside the context node's subtree can occur.
-
-