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 Summary

    Modifier and Type
    Method
    Description
    Process this TailCall (that is, executed the template call that is packaged in this object).
  • Method Details

    • 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