1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.struts.flow.core;
17
18 import java.util.List;
19 import org.apache.commons.chain.web.WebContext;
20
21 /***
22 * The interface of the Continuations manager.
23 *
24 * The continuation manager maintains a forrest of {@link
25 * WebContinuation} trees. Each tree defines the flow of control for a
26 * user within the application.
27 *
28 * A <code>WebContinuation</code> is created for a continuation object
29 * from the scripting language used. A continuation object in the
30 * implementation of the scripting language is an opaque object
31 * here. It is only stored inside the <code>WebContinuation</code>,
32 * without being interpreted in any way.
33 *
34 * @author <a href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</a>
35 * @since March 19, 2002
36 * @see WebContinuation
37 * @version CVS $Id: ContinuationsManager.java 164239 2005-04-22 13:54:29Z reinhard $
38 */
39 public interface ContinuationsManager {
40
41 /***
42 * Create a <code>WebContinuation</code> object given a native
43 * continuation object and its parent. If the parent continuation is
44 * null, the <code>WebContinuation</code> returned becomes the root
45 * of a tree in the forrest.
46 *
47 * @param kont an <code>Object</code> value
48 * @param parentKont a <code>WebContinuation</code> value
49 * @param timeToLive an <code>int</code> value indicating how long
50 * in seconds this continuation will live in the server if not
51 * accessed
52 * @param interpreterId id of interpreter invoking continuation creation
53 * @param disposer a <code>ContinuationsDisposer</code> instance to called when
54 * the continuation gets cleaned up.
55 * @return a <code>WebContinuation</code> value
56 * @see WebContinuation
57 */
58 public WebContinuation createWebContinuation(Object kont,
59 WebContinuation parentKont,
60 int timeToLive,
61 String interpreterId,
62 ContinuationsDisposer disposer,
63 WebContext webctx);
64
65 /***
66 * Invalidates a <code>WebContinuation</code>. This effectively
67 * means that the continuation object associated with it will no
68 * longer be accessible from Web pages. Invalidating a
69 * <code>WebContinuation</code> invalidates all the
70 * <code>WebContinuation</code>s which are children of it.
71 *
72 * @param k a <code>WebContinuation</code> value
73 */
74 public void invalidateWebContinuation(WebContinuation k, WebContext webctx);
75
76 /***
77 * Given a <code>WebContinuation</code> id, retrieve the associated
78 * <code>WebContinuation</code> object.
79 * @param id a <code>String</code> value
80 * @param interpreterId Id of an interpreter that queries for
81 * the continuation
82 *
83 * @return a <code>WebContinuation</code> object, null if no such
84 * <code>WebContinuation</code> could be found. Also null if
85 * <code>WebContinuation</code> was found but interpreter id does
86 * not match the one that the continuation was initialy created for.
87 */
88 public WebContinuation lookupWebContinuation(String id, String interpreterId, WebContext webctx);
89
90 /***
91 * Prints debug information about all web continuations into the log file.
92 * @see WebContinuation#display()
93 */
94 public void displayAllContinuations();
95
96 /***
97 * Get a list of all continuations as <code>WebContinuationDataBean</code> objects.
98 */
99 public List getWebContinuationsDataBeanList();
100
101 /***
102 * Set the default time to live value
103 *
104 *@param ttl The time-to-live in milliseconds
105 */
106 public void setDefaultTimeToLive(int ttl);
107
108 public void setExpirationPeriod(long period);
109
110 /*** Destroys all continuations and any other resident objects */
111 public void destroy();
112 }