]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.uuid/src/org/argeo/api/uuid/AsyncUuidFactory.java
1 package org
.argeo
.api
.uuid
;
4 import java
.util
.concurrent
.CompletionStage
;
5 import java
.util
.concurrent
.ForkJoinTask
;
7 /** A {@link UUID} factory which creates the UUIDs asynchronously. */
8 public interface AsyncUuidFactory
extends UuidFactory
{
10 * TIME-BASED (version 1)
12 CompletionStage
<UUID
> requestTimeUUID();
14 ForkJoinTask
<UUID
> futureTimeUUID();
17 * NAME BASED (version 3 and 5)
19 CompletionStage
<UUID
> requestNameUUIDv5(UUID namespace
, byte[] data
);
21 CompletionStage
<UUID
> requestNameUUIDv3(UUID namespace
, byte[] data
);
23 ForkJoinTask
<UUID
> futureNameUUIDv5(UUID namespace
, byte[] data
);
25 ForkJoinTask
<UUID
> futureNameUUIDv3(UUID namespace
, byte[] data
);
30 CompletionStage
<UUID
> requestRandomUUIDStrong();
32 ForkJoinTask
<UUID
> futureRandomUUIDStrong();
38 default UUID
randomUUIDStrong() {
39 return futureRandomUUIDStrong().invoke();
43 default UUID
timeUUID() {
44 return futureTimeUUID().invoke();
48 default UUID
nameUUIDv5(UUID namespace
, byte[] data
) {
49 return futureNameUUIDv5(namespace
, data
).invoke();
53 default UUID
nameUUIDv3(UUID namespace
, byte[] data
) {
54 return futureNameUUIDv3(namespace
, data
).invoke();