JAL-3878 Add uid to WS Tasks
authorMateusz Warowny <mmzwarowny@dundee.ac.uk>
Tue, 5 Apr 2022 12:10:56 +0000 (14:10 +0200)
committerMateusz Warowny <mmzwarowny@dundee.ac.uk>
Tue, 5 Apr 2022 12:10:56 +0000 (14:10 +0200)
src/jalview/ws2/actions/AbstractPollableTask.java
src/jalview/ws2/actions/api/TaskI.java

index 999411f..6ff5749 100644 (file)
@@ -11,6 +11,7 @@ import java.util.concurrent.TimeUnit;
 
 import jalview.bin.Cache;
 import jalview.util.ArrayUtils;
+import jalview.util.MathUtils;
 import jalview.ws.params.ArgumentI;
 import jalview.ws2.actions.api.TaskEventListener;
 import jalview.ws2.actions.api.TaskI;
@@ -37,6 +38,8 @@ import static java.lang.String.format;
  */
 public abstract class AbstractPollableTask<T extends BaseJob, R> implements TaskI<R>
 {
+  private final long uid = MathUtils.getUID();
+
   protected final WebServiceClientI client;
 
   protected final List<ArgumentI> args;
@@ -62,6 +65,11 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
     this.eventHandler = new TaskEventSupport<R>(this, eventListener);
   }
 
+  public long getUid()
+  {
+    return uid;
+  }
+
   /**
    * Start the task using provided scheduled executor service. It creates a
    * polling loop running at set intervals.
index 874f5a6..cb84944 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.
    *