Interface TailCall

  • All Known Implementing Classes:
    ApplyTemplates.ApplyTemplatesPackage, CallTemplate.CallTemplatePackage

    public interface TailCall
    Interface representing a Tail Call. This is a package of information passed back by a called instruction to its caller, representing a call (and its arguments) that needs to be made by the caller. This saves stack space by unwinding the stack before making the call.
    • Method Detail

      • processLeavingTail

        TailCall processLeavingTail()
                             throws XPathException
        Process this TailCall (that is, executed the template call that is packaged in this object). This may return a further TailCall, which should also be processed: this is the mechanism by which a nested set of recursive calls is converted into an iteration.
        Returns:
        a further TailCall, if the recursion continues, or null, indicating that the recursion has terminated.
        Throws:
        XPathException - if any error occurs processing the tail call