org.apache.xpath.functions

## Class FuncLast

- java.lang.Object
- - org.apache.xpath.Expression
  - - org.apache.xpath.functions.Function
    - - org.apache.xpath.functions.FuncLast

All Implemented Interfaces:
  java.io.Serializable, SourceLocator, ExpressionNode, XPathVisitable

    public class FuncLast
    extends Function

Execute the Last() function.

See Also:
  Serialized Form
Usage:
  **For advanced use only**

### Constructor Summary

Constructors
Constructor and Description
`FuncLast()`

### Method Summary

Methods
`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, 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, isStableNumber, num, warn, xstr`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 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 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:
  `TransformerException`

#### execute

    public XObject execute(XPathContext xctxt)
                    throws 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:
  `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