JAL-3878 Move array index search to ArrayUtils
authorMateusz Warowny <mmzwarowny@dundee.ac.uk>
Mon, 14 Mar 2022 14:51:44 +0000 (15:51 +0100)
committerMateusz Warowny <mmzwarowny@dundee.ac.uk>
Mon, 14 Mar 2022 14:51:44 +0000 (15:51 +0100)
src/jalview/util/ArrayUtils.java
src/jalview/ws2/actions/AbstractPollableTask.java

index c05dac5..e141d07 100644 (file)
@@ -20,6 +20,8 @@
  */
 package jalview.util;
 
+import java.util.Objects;
+
 public class ArrayUtils
 {
   /**
@@ -44,4 +46,24 @@ public class ArrayUtils
       }
     }
   }
+
+  /**
+   * Return the index of the first occurrence of the item in the array or -1 if
+   * the array doesn't contain the item.
+   * 
+   * @param arr
+   *          array to be searched
+   * @param item
+   *          item to search for
+   * @return index of the first occurrence of the item or -1 if not found
+   */
+  public static int indexOf(Object[] arr, Object item)
+  {
+    for (int i = 0; i < arr.length; i++)
+    {
+      if (Objects.equals(arr[i], item))
+        return i;
+    }
+    return -1;
+  }
 }
index d1db921..1e57556 100644 (file)
@@ -10,6 +10,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 import jalview.bin.Cache;
+import jalview.util.ArrayUtils;
 import jalview.ws.params.ArgumentI;
 import jalview.ws2.actions.api.TaskEventListener;
 import jalview.ws2.actions.api.TaskI;
@@ -207,11 +208,11 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
   private void updateGlobalStatus()
   {
     JobStatus newStatus = taskStatus;
-    int currentPrecedence = getPrecedenceOf(newStatus);
+    int currentPrecedence = ArrayUtils.indexOf(statusPrecedence, newStatus);
     for (BaseJob job : jobs)
     {
       JobStatus status = job.getStatus();
-      int jobPrecedence = getPrecedenceOf(status);
+      int jobPrecedence = ArrayUtils.indexOf(statusPrecedence, status);
       if (currentPrecedence < jobPrecedence)
       {
         currentPrecedence = jobPrecedence;
@@ -240,24 +241,6 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
       JobStatus.SERVER_ERROR
   };
 
-  /**
-   * @param status
-   *          status to find the precedence of
-   * @return precedence of the status
-   */
-  private static int getPrecedenceOf(JobStatus status)
-  {
-    final int len = statusPrecedence.length;
-    for (int i = 0; i < len; i++)
-    {
-      if (statusPrecedence[i] == status)
-      {
-        return i;
-      }
-    }
-    return -1;
-  }
-
   @Override
   public void cancel()
   {