KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > externalprocess > IProgressMonitor


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.util.externalprocess;
11
12 /**
13  * The <code>IProgressMonitor</code> interface is implemented
14  * by objects that monitor the progress of a external process;
15  * the methods in this interface are invoked by code that performs the external
16  * process handling.
17  * <p>
18  * A request to cancel the external process can be signaled using the
19  * <code>setCanceled</code> method. Operations taking a progress monitor are
20  * expected to poll the monitor (using <code>isCanceled</code>) periodically and
21  * abort at their earliest convenience. Operation can however choose to ignore
22  * cancelation requests.
23  * </p>
24  * <p>
25  * Since notification is synchronous with the external process itself, the
26  * listener should provide a fast and robust implementation. If the handling of
27  * notifications would involve blocking operations, or operations which might
28  * throw uncaught exceptions, the notifications should be queued, and the actual
29  * processing deferred (or perhaps delegated to a separate thread).
30  * </p>
31  * <p>
32  * Clients may implement this interface.
33  * </p>
34  *
35  * @author Nico Klasens (Finalist IT Group)
36  * @version $Id: IProgressMonitor.java,v 1.3 2003/05/12 13:10:48 kees Exp $
37  * @since MMBase-1.6
38  */

39 public interface IProgressMonitor {
40
41     /**
42      * Notifies that the processing is beginning. This must only be called once
43      * on a given progress monitor instance.
44      */

45     public void begin();
46
47     /**
48      * Notifies that the work is done; that is, either the external process is
49      * completed or the user canceled it.
50      */

51     public void done();
52
53     /**
54      * Returns whether cancelation of current operation has been requested.
55      * Long-running operations should poll to see if cancelation
56      * has been requested.
57      *
58      * @return <code>true</code> if cancellation has been requested,
59      * and <code>false</code> otherwise
60      * @see #setCanceled
61      */

62     public boolean isCanceled();
63
64     /**
65      * Sets the cancel state to the given value.
66      *
67      * @param value <code>true</code> indicates that cancelation has
68      * been requested (but not necessarily acknowledged);
69      * <code>false</code> clears this flag
70      *
71      * @see #isCanceled
72      */

73     public void setCanceled(boolean value);
74
75     /**
76      * Notifies that some work of the external process has been completed.
77      */

78     public void worked();
79 }
80
Popular Tags