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
protected Task()
          Constructor for subclasses that wants to control whole execution itself.
  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.
protected  void notifyRunning()
          Changes the state of the task to be running.
 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

Task

protected Task()
Constructor for subclasses that wants to control whole execution itself.
Since:
1.5
Method Detail

isFinished

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

waitFinished

public void waitFinished()
Wait until the task is finished. Changed not to be final in version 1.5

notifyRunning

protected final void notifyRunning()
Changes the state of the task to be running. Any call after this one and before notifyFinished to waitFinished blocks.
Since:
1.5

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 December 12 2001.  |  Portions Copyright 1997-2001 Sun Microsystems, Inc. All rights reserved.