Class FunctionDef1Arg
java.lang.Object
org.loboevolution.apache.xpath.Expression
org.loboevolution.apache.xpath.functions.Function
org.loboevolution.apache.xpath.functions.FunctionOneArg
org.loboevolution.apache.xpath.functions.FunctionDef1Arg
- All Implemented Interfaces:
SourceLocator
,ExpressionNode
,XPathVisitable
- Direct Known Subclasses:
FuncLocalPart
,FuncNamespace
,FuncNormalizeSpace
,FuncNumber
,FuncQname
,FuncString
,FuncStringLength
Base class for functions that accept one argument that can be defaulted if not specified.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
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
Constructs and throws a WrongNumberArgException with the appropriate message for this function object.Methods inherited from class org.loboevolution.apache.xpath.functions.FunctionOneArg
callArgVisitors, deepEquals, setArg
Methods inherited from class org.loboevolution.apache.xpath.functions.Function
callVisitors, execute, postCompileStep
Methods inherited from class org.loboevolution.apache.xpath.Expression
asIterator, asNode, assertion, bool, error, execute, execute, execute, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isSameClass, isStableNumber, num
-
Constructor Details
-
FunctionDef1Arg
public FunctionDef1Arg()
-
-
Method Details
-
getArg0AsNode
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:
TransformerException
- if an error occurs while executing the argument expression.
-
getArg0AsString
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:
TransformerException
- if an error occurs while executing the argument expression.
-
getArg0AsNumber
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:
TransformerException
- if an error occurs while executing the argument expression.
-
checkNumberArgs
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
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.
-