Remove dependencies to System.getLogger, for Android compatibility.
[lgpl/argeo-commons.git] / org.argeo.api.uuid / src / org / argeo / api / uuid / NodeIdSupplier.java
index 94ec50da4b9ff76d3eb86fe94425d6e1ec9dddce..81d368d2c8c651c37ea9ab48f7f048db98351f16 100644 (file)
@@ -1,13 +1,13 @@
 package org.argeo.api.uuid;
 
+import java.security.SecureRandom;
 import java.util.function.Supplier;
 
 /** A factory for node id base */
 public interface NodeIdSupplier extends Supplier<Long> {
        static long toNodeIdBase(byte[] node) {
                assert node.length == 6;
-               return UuidFactory.LEAST_SIG_RFC4122_VARIANT
-                               | (node[0] & 0xFFL) //
+               return UuidFactory.LEAST_SIG_RFC4122_VARIANT | (node[0] & 0xFFL) //
                                | ((node[1] & 0xFFL) << 8) //
                                | ((node[2] & 0xFFL) << 16) //
                                | ((node[3] & 0xFFL) << 24) //
@@ -19,4 +19,10 @@ public interface NodeIdSupplier extends Supplier<Long> {
                return (nodeId[0] & 1) != 0;
        }
 
+       static byte[] randomNodeId() {
+               SecureRandom random = new SecureRandom();
+               byte[] nodeId = new byte[6];
+               random.nextBytes(nodeId);
+               return nodeId;
+       }
 }