Merge branch 'JAL-3878_ws-overhaul-3' into mmw/Release_2_12_ws_merge
[jalview.git] / src / jalview / ws2 / helpers / TaskEventSupport.java
diff --git a/src/jalview/ws2/helpers/TaskEventSupport.java b/src/jalview/ws2/helpers/TaskEventSupport.java
new file mode 100644 (file)
index 0000000..c7b6052
--- /dev/null
@@ -0,0 +1,60 @@
+package jalview.ws2.helpers;
+
+import java.util.List;
+
+import jalview.ws2.actions.api.JobI;
+import jalview.ws2.actions.api.TaskEventListener;
+import jalview.ws2.actions.api.TaskI;
+import jalview.ws2.api.JobStatus;
+
+public class TaskEventSupport<T>
+{
+  TaskI<T> source;
+  TaskEventListener<T> handler;
+  
+  public TaskEventSupport(TaskI<T> source, TaskEventListener<T> handler)
+  {
+    this.source = source;
+    this.handler = handler;
+  }
+  
+  public void fireTaskStarted(List<? extends JobI> subJobs)
+  {
+    handler.taskStarted(source, subJobs);
+  }
+  
+  public void fireTaskStatusChanged(JobStatus status)
+  {
+    handler.taskStatusChanged(source, status);
+  }
+  
+  public void fireTaskCompleted(T result)
+  {
+    handler.taskCompleted(source, result);
+  }
+  
+  public void fireTaskException(Exception e)
+  {
+    handler.taskException(source, e);
+  }
+  
+  public void fireTaskRestarted()
+  {
+    handler.taskRestarted(source);
+  }
+  
+  public void fireSubJobStatusChanged(JobI job, JobStatus status)
+  {
+    handler.subJobStatusChanged(source, job, status);
+  }
+  
+  public void fireSubJobLogChanged(JobI job, String log)
+  {
+    handler.subJobLogChanged(source, job, log);
+  }
+  
+  public void fireSubJobErrorLogChanged(JobI job, String log)
+  {
+    handler.subJobErrorLogChanged(source, job, log);
+  }
+}