FileDocCategorySizeDatePackage
Function.javaAPI DocJava SE 5 API4499Fri Aug 26 14:56:08 BST 2005com.sun.org.apache.xpath.internal.functions

Function

public abstract class Function extends Expression
This is a superclass of all XPath functions. This allows two ways for the class to be called. One method is that the super class processes the arguments and hands the results to the derived class, the other method is that the derived class may process it's own arguments, which is faster since the arguments don't have to be added to an array, but causes a larger code footprint.
xsl.usage
advanced

Fields Summary
Constructors Summary
Methods Summary
public voidcallArgVisitors(com.sun.org.apache.xpath.internal.XPathVisitor visitor)
Call the visitors for the function arguments.

  
public voidcallVisitors(com.sun.org.apache.xpath.internal.ExpressionOwner owner, com.sun.org.apache.xpath.internal.XPathVisitor visitor)

see
XPathVisitable#callVisitors(ExpressionOwner, XPathVisitor)

  	if(visitor.visitFunction(owner, this))
  	{
  		callArgVisitors(visitor);
  	}
  
public voidcheckNumberArgs(int argNum)
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.

param
argNum The number of arguments that is being passed to the function.
throws
WrongNumberArgsException

    if (argNum != 0)
      reportWrongNumberArgs();
  
public booleandeepEquals(com.sun.org.apache.xpath.internal.Expression expr)

see
Expression#deepEquals(Expression)

  	if(!isSameClass(expr))
  		return false;
  		
  	return true;
  
public com.sun.org.apache.xpath.internal.objects.XObjectexecute(com.sun.org.apache.xpath.internal.XPathContext xctxt)
Execute an XPath function object. The function must return a valid object.

param
xctxt The execution current context.
return
A valid XObject.
throws
javax.xml.transform.TransformerException


    // Programmer's assert.  (And, no, I don't want the method to be abstract).
    System.out.println("Error! Function.execute should not be called!");

    return null;
  
public voidpostCompileStep(com.sun.org.apache.xpath.internal.compiler.Compiler compiler)
This function is currently only being used by Position() and Last(). See respective functions for more detail.

    // no default action
  
protected voidreportWrongNumberArgs()
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.

throws
WrongNumberArgsException

      throw new WrongNumberArgsException(XSLMessages.createXPATHMessage("zero", null));
  
public voidsetArg(com.sun.org.apache.xpath.internal.Expression arg, int argNum)
Set an argument expression for a function. This method is called by the XPath compiler.

param
arg non-null expression that represents the argument.
param
argNum The argument number index.
throws
WrongNumberArgsException If the argNum parameter is beyond what is specified for this function.

			// throw new WrongNumberArgsException(XSLMessages.createXPATHMessage("zero", null));
      reportWrongNumberArgs();