org.openide.util
Class Task

java.lang.Object
  |
  +--org.openide.util.Task
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
CompilerTask, ExecutorTask, FolderInstance, RequestProcessor.Task

public class Task
extends Object
implements Runnable

A task that may be executed in a separate thread and permits examination of its status. Other threads can check if it is finished or wait for it to finish.

For example:

 Runnable r = new Runnable () {
   public void run () {
     // do something
   }
 };
 Task task = new Task (r);
 RequestProcessor.postRequest (task);
 

In a different thread one can then test task.isFinished () or wait for it with task.waitFinished ().


Field Summary
static Task EMPTY
          Dummy task which is already finished.
 
Constructor Summary
Task(Runnable run)
          Create a new task.
 
Method Summary
 void addTaskListener(TaskListener l)
          Add a listener to the task.
 boolean isFinished()
          Test whether the task has finished running.
protected  void notifyFinished()
          Notify all waiters that this task has finished.
 void removeTaskListener(TaskListener l)
          Remove a listener from the task.
 void run()
          Start the task.
 String toString()
           
 void waitFinished()
          Wait until the task is finished.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY

public static final Task EMPTY
Dummy task which is already finished.
Constructor Detail

Task

public Task(Runnable run)
Create a new task. The runnable should provide its own error-handling, as by default thrown exceptions are simply logged and not rethrown.
Parameters:
run - runnable to run that computes the task
Method Detail

isFinished

public final boolean isFinished()
Test whether the task has finished running.
Returns:
true if so

waitFinished

public final void waitFinished()
Wait until the task is finished.

notifyFinished

protected final void notifyFinished()
Notify all waiters that this task has finished.
See Also:
run()

run

public void run()
Start the task. When it finishes (even with an exception) it calls notifyFinished(). Subclasses may override this method, but they then need to call notifyFinished() explicitly.

Note that this call runs synchronously, but typically the creator of the task will call this method in a separate thread.

Specified by:
run in interface Runnable

addTaskListener

public void addTaskListener(TaskListener l)
Add a listener to the task.
Parameters:
l - the listener to add

removeTaskListener

public void removeTaskListener(TaskListener l)
Remove a listener from the task.
Parameters:
l - the listener to remove

toString

public String toString()
Overrides:
toString in class Object


Built on February 22 2001.  |  Portions Copyright 1997-2000 Sun Microsystems, Inc. All rights reserved.