## net.sf.saxon.expr
Class UserFunctionCall.FunctionCallPackage

    java.lang.Object
      net.sf.saxon.value.Value
          net.sf.saxon.expr.UserFunctionCall.FunctionCallPackage

All Implemented Interfaces:
  Expression, java.io.Serializable, ValueRepresentation

Enclosing class:
  UserFunctionCall

public class UserFunctionCall.FunctionCallPackage
extends Value

Inner class used to wrap up the set of actual arguments to a tail-recursive call of the containing function. This argument package is passed back to the calling code in place of a function result; the caller then loops to re-invoke the function with these arguments, avoiding the creation of an additional stack frame.

See Also:
  Serialized Form

Field Summary

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`UserFunctionCall.FunctionCallPackage(UserFunction function, ValueRepresentation[] actualArgs, XPathContext c)`

Method Summary
`ValueRepresentation` `appendTo(SequenceReceiver out)`
`ValueRepresentation` `call()`
`int` `getCardinality()` Determine the cardinality
`int` `getImplementationMethod()` An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
`ItemType` `getItemType()` Determine the data type of the items in the expression, if possible
`SequenceIterator` `iterate(XPathContext context)` Return an Iterator to iterate over the values of a sequence.

Methods inherited from class net.sf.saxon.value.Value

`analyze, asItem, asValue, checkPermittedContents, collapseWhitespace, convert, convertJavaObjectToXPath, convertToJava, display, effectiveBooleanValue, equals, evaluateAsString, evaluateItem, getDependencies, getIterator, getLength, getParentExpression, getSpecialProperties, getStringValue, hashCode, itemAt, iterateSubExpressions, makeQNameValue, normalizeWhitespace, process, promote, simplify, stringToNumber, toString, trimWhitespace`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### UserFunctionCall.FunctionCallPackage

    public UserFunctionCall.FunctionCallPackage(UserFunction function,
                                                ValueRepresentation[] actualArgs,
                                                XPathContext c)

Method Detail

### getImplementationMethod

    public int getImplementationMethod()

  An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is provided directly. The other methods will always be available indirectly, using an implementation that relies on one of the other methods.

### call

    public ValueRepresentation call()
                             throws XPathException

  Throws:
    `XPathException`

### appendTo

    public ValueRepresentation appendTo(SequenceReceiver out)
                                 throws XPathException

  Throws:
    `XPathException`

### getItemType

    public ItemType getItemType()

  Determine the data type of the items in the expression, if possible

  Specified by:
    `getItemType` in interface `Expression`
  Overrides:
    `getItemType` in class `Value`
  Returns:
    AnyItemType (not known)

### getCardinality

    public int getCardinality()

  Determine the cardinality

  Specified by:
    `getCardinality` in interface `Expression`
  Overrides:
    `getCardinality` in class `Value`

### iterate

    public SequenceIterator iterate(XPathContext context)
                             throws XPathException

  Return an Iterator to iterate over the values of a sequence.

  Parameters:
    `context` - supplies the context for evaluation
  Returns:
    a SequenceIterator that can be used to iterate over the result of the expression
  Throws:
    `XPathException` - if any dynamic error occurs evaluating the expression