org.apache.xpath.functions
Class FunctionDef1Arg

java.lang.Object
  extended byorg.apache.xpath.Expression
      extended byorg.apache.xpath.functions.Function
          extended byorg.apache.xpath.functions.FunctionOneArg
              extended byorg.apache.xpath.functions.FunctionDef1Arg
All Implemented Interfaces:
ExpressionNode, ExpressionOwner, Serializable, javax.xml.transform.SourceLocator, XPathVisitable
Direct Known Subclasses:
FuncDoclocation, FuncGenerateId, 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.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.xpath.functions.FunctionOneArg
m_arg0
 
Fields inherited from class org.apache.xpath.Expression
 
Constructor Summary
FunctionDef1Arg()
           
 
Method Summary
 boolean Arg0IsNodesetExpr()
          Tell if the expression is a nodeset expression.
 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  XMLString 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.apache.xpath.functions.FunctionOneArg
callArgVisitors, deepEquals, fixupVariables, getArg0, getExpression, setArg, setExpression
 
Methods inherited from class org.apache.xpath.functions.Function
callVisitors, execute, postCompileStep
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isSameClass, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FunctionDef1Arg

public FunctionDef1Arg()
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.

Arg0IsNodesetExpr

public boolean Arg0IsNodesetExpr()
Tell if the expression is a nodeset expression.

Returns:
true if the expression can be represented as a nodeset.

getArg0AsString

protected XMLString 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.

Overrides:
checkNumberArgs in class FunctionOneArg
Parameters:
argNum - The number of arguments that is being passed to the function.
Throws:
WrongNumberArgsException - if the number of arguments is not 0 or 1.

reportWrongNumberArgs

protected void reportWrongNumberArgs()
                              throws WrongNumberArgsException
Constructs and throws a WrongNumberArgException with the appropriate message for this function object.

Overrides:
reportWrongNumberArgs in class FunctionOneArg
Throws:
WrongNumberArgsException

canTraverseOutsideSubtree

public boolean canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.

Overrides:
canTraverseOutsideSubtree in class FunctionOneArg
Returns:
true if traversal outside the context node's subtree can occur.