01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.components.flow;
18:
19: import java.util.List;
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 433543 2006-08-22 06:22:54Z crossley $
38: */
39: public interface ContinuationsManager {
40: public final String ROLE = ContinuationsManager.class.getName();
41:
42: /**
43: * Create a <code>WebContinuation</code> object given a native
44: * continuation object and its parent. If the parent continuation is
45: * null, the <code>WebContinuation</code> returned becomes the root
46: * of a tree in the forrest.
47: *
48: * @param kont an <code>Object</code> value
49: * @param parentKont a <code>WebContinuation</code> value
50: * @param timeToLive an <code>int</code> value indicating how long
51: * in seconds this continuation will live in the server if not
52: * accessed
53: * @param interpreterId id of interpreter invoking continuation creation
54: * @param disposer a <code>ContinuationsDisposer</code> instance to called when
55: * the continuation gets cleaned up.
56: * @return a <code>WebContinuation</code> value
57: * @see WebContinuation
58: */
59: public WebContinuation createWebContinuation(Object kont,
60: WebContinuation parentKont, int timeToLive,
61: String interpreterId, ContinuationsDisposer disposer);
62:
63: /**
64: * Invalidates a <code>WebContinuation</code>. This effectively
65: * means that the continuation object associated with it will no
66: * longer be accessible from Web pages. Invalidating a
67: * <code>WebContinuation</code> invalidates all the
68: * <code>WebContinuation</code>s which are children of it.
69: *
70: * @param k a <code>WebContinuation</code> value
71: */
72: public void invalidateWebContinuation(WebContinuation k);
73:
74: /**
75: * Given a <code>WebContinuation</code> id, retrieve the associated
76: * <code>WebContinuation</code> object.
77: * @param id a <code>String</code> value
78: * @param interpreterId Id of an interpreter that queries for
79: * the continuation
80: *
81: * @return a <code>WebContinuation</code> object, null if no such
82: * <code>WebContinuation</code> could be found. Also null if
83: * <code>WebContinuation</code> was found but interpreter id does
84: * not match the one that the continuation was initialy created for.
85: */
86: public WebContinuation lookupWebContinuation(String id,
87: String interpreterId);
88:
89: /**
90: * Prints debug information about all web continuations into the log file.
91: * @see WebContinuation#display()
92: */
93: public void displayAllContinuations();
94:
95: /**
96: * Get a list of all continuations as <code>WebContinuationDataBean</code> objects.
97: */
98: public List getWebContinuationsDataBeanList();
99: }
|