Improve time based UUID speed and configuration.
[lgpl/argeo-commons.git] / org.argeo.api.uuid / src / org / argeo / api / uuid / MacAddressUuidFactory.java
diff --git a/org.argeo.api.uuid/src/org/argeo/api/uuid/MacAddressUuidFactory.java b/org.argeo.api.uuid/src/org/argeo/api/uuid/MacAddressUuidFactory.java
new file mode 100644 (file)
index 0000000..d1ce6de
--- /dev/null
@@ -0,0 +1,15 @@
+package org.argeo.api.uuid;
+
+public class MacAddressUuidFactory extends ConcurrentUuidFactory {
+       public final static UuidFactory DEFAULT = new MacAddressUuidFactory();
+
+       public MacAddressUuidFactory() {
+               setNodeIdSupplier(() -> {
+                       byte[] hardwareAddress = getHardwareAddress();
+                       byte[] macAddressNodeId = toNodeIdBytes(hardwareAddress, 0);
+                       long nodeIdBase = NodeIdSupplier.toNodeIdBase(macAddressNodeId);
+                       return nodeIdBase;
+               });
+       }
+
+}