KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > saxon > instruct > TailCall


1 package net.sf.saxon.instruct;
2 import net.sf.saxon.expr.XPathContext;
3 import net.sf.saxon.trans.XPathException;
4
5
6 /**
7 * Interface representing a Tail Call. This is a package of information passed back by a called
8 * instruction to its caller, representing a call (and its arguments) that needs to be made
9 * by the caller. This saves stack space by unwinding the stack before making the call.
10 */

11
12 public interface TailCall {
13
14     /**
15     * Process this TailCall (that is, executed the template call that is packaged in this
16     * object). This may return a further TailCall, which should also be processed: this
17     * is the mechanism by which a nested set of recursive calls is converted into an iteration.
18     * @param context The dynamic context of the transformation
19     * @return a further TailCall, if the recursion continues, or null, indicating that the
20     * recursion has terminated.
21     * @throws net.sf.saxon.trans.XPathException if any error occurs processing the tail call
22     */

23
24     public TailCall processLeavingTail(XPathContext context) throws XPathException;
25
26 }
27
28 //
29
// The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License");
30
// you may not use this file except in compliance with the License. You may obtain a copy of the
31
// License at http://www.mozilla.org/MPL/
32
//
33
// Software distributed under the License is distributed on an "AS IS" basis,
34
// WITHOUT WARRANTY OF ANY KIND, either express or implied.
35
// See the License for the specific language governing rights and limitations under the License.
36
//
37
// The Original Code is: all this file.
38
//
39
// The Initial Developer of the Original Code is Michael H. Kay.
40
//
41
// Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved.
42
//
43
// Contributor(s): none.
44
//
45
Popular Tags