org.apache.xpath.functions
Class FuncLast

java.lang.Object
  extended by org.apache.xpath.Expression
      extended by org.apache.xpath.functions.Function
          extended by org.apache.xpath.functions.FuncLast
All Implemented Interfaces:
java.io.Serializable, javax.xml.transform.SourceLocator, ExpressionNode, XPathVisitable

public class FuncLast
extends Function

Execute the Last() function.

See Also:
Serialized Form

Field Summary
private  boolean m_isTopLevel
           
(package private) static long serialVersionUID
           
 
Constructor Summary
FuncLast()
           
 
Method Summary
 XObject execute(XPathContext xctxt)
          Execute the function.
 void fixupVariables(java.util.Vector vars, int globalsSize)
          No arguments to process, so this does nothing.
 int getCountOfContextNodeList(XPathContext xctxt)
          Get the position in the current context node list.
 void postCompileStep(Compiler compiler)
          Figure out if we're executing a toplevel expression.
 
Methods inherited from class org.apache.xpath.functions.Function
callArgVisitors, callVisitors, checkNumberArgs, deepEquals, reportWrongNumberArgs, setArg
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, 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
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_isTopLevel

private boolean m_isTopLevel
Constructor Detail

FuncLast

public FuncLast()
Method Detail

postCompileStep

public void postCompileStep(Compiler compiler)
Figure out if we're executing a toplevel expression. If so, we can't be inside of a predicate.

Overrides:
postCompileStep in class Function

getCountOfContextNodeList

public int getCountOfContextNodeList(XPathContext xctxt)
                              throws javax.xml.transform.TransformerException
Get the position in the current context node list.

Parameters:
xctxt - non-null reference to XPath runtime context.
Returns:
The number of nodes in the list.
Throws:
javax.xml.transform.TransformerException

execute

public XObject execute(XPathContext xctxt)
                throws javax.xml.transform.TransformerException
Execute the function. The function must return a valid object.

Overrides:
execute in class Function
Parameters:
xctxt - The current execution context.
Returns:
A valid XObject.
Throws:
javax.xml.transform.TransformerException

fixupVariables

public void fixupVariables(java.util.Vector vars,
                           int globalsSize)
No arguments to process, so this does nothing.

Specified by:
fixupVariables in class Expression
Parameters:
vars - List of QNames that correspond to variables. This list should be searched backwards for the first qualified name that corresponds to the variable reference qname. The position of the QName in the vector from the start of the vector will be its position in the stack frame (but variables above the globalsTop value will need to be offset to the current stack frame). NEEDSDOC @param globalsSize