JAL-3878 Add universal id generator to MathUtils.
authorMateusz Warowny <mmzwarowny@dundee.ac.uk>
Tue, 15 Feb 2022 17:37:53 +0000 (18:37 +0100)
committerMateusz Warowny <mmzwarowny@dundee.ac.uk>
Tue, 15 Feb 2022 17:37:53 +0000 (18:37 +0100)
src/jalview/util/MathUtils.java

index ecbb6e1..ae0885e 100644 (file)
@@ -39,4 +39,17 @@ public class MathUtils
     return gcd(b, a % b);
   }
 
+
+  private static int uidCounter = (int)(Math.random() * 0xffffffff);
+  /**
+   * Generates a unique 64-bit identifier.
+   */
+  public static long getUID()
+  {
+    long uid = 0L;
+    uid |= ((System.currentTimeMillis() >> 10) & 0xfffffffL) << 36;
+    uid |= (long)(Math.random() * 0xfL) << 32;
+    uid |= ++uidCounter & 0xffffffff;
+    return uid;
+  }
 }