Stabilise configuration and documentation of UUID factory.
[lgpl/argeo-commons.git] / org.argeo.api.uuid / src / org / argeo / api / uuid / TimeUuidState.java
index 780e8ad337070e6fc129db45e91e6646509abaa2..9c8b6dd69b294b8eb56f8cf9b66d02ae388bd40f 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.api.uuid;
 import java.time.Instant;
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
+import java.util.UUID;
 
 /**
  * The state of a time based UUID generator, as described and discussed in
@@ -17,14 +18,24 @@ public interface TimeUuidState {
        /** Start of the Gregorian time, used by time-based UUID (v1). */
        final static Instant GREGORIAN_START = ZonedDateTime.of(1582, 10, 15, 0, 0, 0, 0, ZoneOffset.UTC).toInstant();
 
-       long getLastTimestamp();
-
-       long getClockSequence();
-
+       /** Current node id and clock sequence for this thread. */
        long getLeastSignificantBits();
 
+       /** A new current timestamp for this thread. */
        long getMostSignificantBits();
 
+       /**
+        * The last timestamp which was produced by this thread, as returned by
+        * {@link UUID#timestamp()}.
+        */
+       long getLastTimestamp();
+
+       /**
+        * The current clock sequence for this thread, as returned by
+        * {@link UUID#clockSequence()}.
+        */
+       long getClockSequence();
+
        static boolean isNoMacAddressNodeId(byte[] nodeId) {
                return (nodeId[0] & 1) != 0;
        }