1 package net.sf.tomp.xtcl.command;
2
3 import net.sf.tomp.xtcl.Context;
4
5 import java.io.PrintStream;
6
7 /***
8 * DOCUMENT ME!
9 *
10 * @author tomp
11 */
12 public class Ret extends AbstractCommand {
13 /*** DOCUMENT ME! */
14 protected String[] returns;
15
16 /***
17 * DOCUMENT ME!
18 *
19 * @param r DOCUMENT ME!
20 */
21 public void setReturns(String[] r) {
22 returns = r;
23 }
24
25 /***
26 * DOCUMENT ME!
27 *
28 * @param c DOCUMENT ME!
29 * @return DOCUMENT ME!
30 * @throws Exception DOCUMENT ME!
31 */
32 public int execute(Context c) throws Exception {
33 Context prev = c.getPrevious();
34
35 for (int i = 0; i < returns.length; i++) {
36 String k = returns[i];
37 Object v = c.get(k);
38
39 prev.put("$" + (i + 1), v);
40 }
41
42 PrintStream out = c.getOut();
43
44 if (out != null) {
45 out.print("OK " + this);
46 }
47
48 return 0;
49 }
50
51 /***
52 * DOCUMENT ME!
53 *
54 * @return DOCUMENT ME!
55 */
56 public String toString() {
57 return "RETURN (" + listArray(returns) + ")";
58 }
59 }
60
61
62
63
64
65
66
67
68
69
70