JAL-3878 Add methods to get and remove workers by their calc name.
[jalview.git] / src / jalview / workers / AlignCalcManager2.java
index 8d4796d..5c25668 100644 (file)
@@ -312,6 +312,20 @@ public class AlignCalcManager2 implements AlignCalcManagerI2
   }
 
   @Override
+  public List<AlignCalcWorkerI> getWorkersForName(String name)
+  {
+    List<AlignCalcWorkerI> collected = new ArrayList<>();
+    for (var worker : getWorkers())
+    {
+      if (worker.getCalcName().equals(name))
+      {
+        collected.add(worker);
+      }
+    }
+    return collected;
+  }
+
+  @Override
   public void removeWorker(AlignCalcWorkerI worker)
   {
     if (worker.isDeletable())
@@ -351,6 +365,21 @@ public class AlignCalcManager2 implements AlignCalcManagerI2
   }
 
   @Override
+  public void removeWorkersForName(String name)
+  {
+    synchronized (registered)
+    {
+      for (var worker : getWorkers())
+      {
+        if (worker.getCalcName().equals(name))
+        {
+          removeWorker(worker);
+        }
+      }
+    }
+  }
+
+  @Override
   public void disableWorker(AlignCalcWorkerI worker)
   {
     // Null pointer check might be needed