| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.cocoon.components.flow; |
| |
| import java.util.List; |
| import java.util.Set; |
| |
| /** |
| * The interface of the Continuations manager. |
| * |
| * The continuation manager maintains a forest of {@link |
| * WebContinuation} trees. Each tree defines the flow of control for a |
| * user within the application. |
| * |
| * A <code>WebContinuation</code> is created for a continuation object |
| * from the scripting language used. A continuation object in the |
| * implementation of the scripting language is an opaque object |
| * here. It is only stored inside the <code>WebContinuation</code>, |
| * without being interpreted in any way. |
| * |
| * @author <a href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</a> |
| * @since March 19, 2002 |
| * @see WebContinuation |
| * @version CVS $Id$ |
| */ |
| public interface ContinuationsManager { |
| public final String ROLE = ContinuationsManager.class.getName(); |
| |
| /** |
| * Create a <code>WebContinuation</code> object given a native |
| * continuation object and its parent. If the parent continuation is |
| * null, the <code>WebContinuation</code> returned becomes the root |
| * of a tree in the forest. |
| * |
| * @param kont an <code>Object</code> value |
| * @param parentKont a <code>WebContinuation</code> value |
| * @param timeToLive an <code>int</code> value indicating how long |
| * in seconds this continuation will live in the server if not |
| * accessed |
| * @param interpreterId id of interpreter invoking continuation creation |
| * @param disposer a <code>ContinuationsDisposer</code> instance to called when |
| * the continuation gets cleaned up. |
| * @return a <code>WebContinuation</code> value |
| * @see WebContinuation |
| */ |
| public WebContinuation createWebContinuation(Object kont, |
| WebContinuation parentKont, |
| int timeToLive, |
| String interpreterId, |
| ContinuationsDisposer disposer); |
| |
| /** |
| * Invalidates a <code>WebContinuation</code>. This effectively |
| * means that the continuation object associated with it will no |
| * longer be accessible from Web pages. Invalidating a |
| * <code>WebContinuation</code> invalidates all the |
| * <code>WebContinuation</code>s which are children of it. |
| * |
| * @param k a <code>WebContinuation</code> value |
| */ |
| public void invalidateWebContinuation(WebContinuation k); |
| |
| /** |
| * Given a <code>WebContinuation</code> id, retrieve the associated |
| * <code>WebContinuation</code> object. |
| * @param id a <code>String</code> value |
| * @param interpreterId Id of an interpreter that queries for |
| * the continuation |
| * |
| * @return a <code>WebContinuation</code> object, null if no such |
| * <code>WebContinuation</code> could be found. Also null if |
| * <code>WebContinuation</code> was found but interpreter id does |
| * not match the one that the continuation was initially created for. |
| */ |
| public WebContinuation lookupWebContinuation(String id, String interpreterId); |
| |
| /** |
| * Prints debug information about all web continuations into the log file. |
| * |
| * @deprecated Use {@link #getForest()}. This method will be removed from |
| * the interface. |
| */ |
| public void displayAllContinuations(); |
| |
| /** |
| * Get a list of all continuations as <code>WebContinuationDataBean</code> objects. |
| * |
| * @deprecated Use {@link #getForest()}. This method will be removed. |
| */ |
| public List getWebContinuationsDataBeanList(); |
| |
| /** |
| * Get a set of all web continuations. The set itself will only contain the |
| * root continuations. Those will provide access to their children. |
| * |
| * Since it should not be possible to mess up the actual managed |
| * continuations the returned list will contain clones of them. |
| * |
| * The purpose of this method is clearly monitoring or for debugging the |
| * application. It has no direct relationship to functionality of the |
| * ContinuationsManager. |
| */ |
| public Set getForest(); |
| |
| } |