JAL-4199 Replace AbstractPollingTask with BaseTask
[jalview.git] / src / jalview / ws2 / actions / api / TaskI.java
index 874f5a6..5f4d575 100644 (file)
@@ -2,9 +2,7 @@ package jalview.ws2.actions.api;
 
 import java.util.List;
 
-import jalview.viewmodel.AlignmentViewport;
 import jalview.ws2.api.JobStatus;
-import jalview.ws2.api.WebServiceJobHandle;
 
 /**
  * {@code TaskI} objects represent running services. Tasks are created by
@@ -19,6 +17,13 @@ import jalview.ws2.api.WebServiceJobHandle;
 public interface TaskI<T>
 {
   /**
+   * Get the universal identifier of this task.
+   * 
+   * @return identifier
+   */
+  long getUid();
+
+  /**
    * Get the current status of the task. The resultant status should be a
    * combination of individual sub-job statuses.
    * 
@@ -33,6 +38,10 @@ public interface TaskI<T>
    */
   List<? extends JobI> getSubJobs();
 
+  void addTaskEventListener(TaskEventListener<T> listener);
+
+  void removeTaskEventListener(TaskEventListener<T> listener);
+
   /**
    * Get the last result of the task or {@code null} if not present. Note that
    * the result is subject to change for restartable tasks.
@@ -41,6 +50,12 @@ public interface TaskI<T>
    */
   T getResult();
 
+  public void init() throws Exception;
+
+  public boolean poll() throws Exception;
+
+  public void complete() throws Exception;
+
   /**
    * Cancel the task, stop all sub-jobs running on a server and stop all threads
    * managing this task.