]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.acr/src/org/argeo/api/acr/uuid/AsyncUuidFactory.java
1 package org
.argeo
.api
.acr
.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 CompletionStage
<UUID
> requestTimeUUIDwithMacAddress();
16 ForkJoinTask
<UUID
> futureTimeUUID();
18 ForkJoinTask
<UUID
> futureTimeUUIDwithMacAddress();
21 * NAME BASED (version 3 and 5)
23 CompletionStage
<UUID
> requestNameUUIDv5(UUID namespace
, byte[] data
);
25 CompletionStage
<UUID
> requestNameUUIDv3(UUID namespace
, byte[] data
);
27 ForkJoinTask
<UUID
> futureNameUUIDv5(UUID namespace
, byte[] data
);
29 ForkJoinTask
<UUID
> futureNameUUIDv3(UUID namespace
, byte[] data
);
34 CompletionStage
<UUID
> requestRandomUUIDStrong();
36 ForkJoinTask
<UUID
> futureRandomUUIDStrong();
42 default UUID
randomUUIDStrong() {
43 return futureRandomUUIDStrong().invoke();
47 default UUID
timeUUID() {
48 return futureTimeUUID().invoke();
52 default UUID
timeUUIDwithMacAddress() {
53 return futureTimeUUIDwithMacAddress().invoke();
57 default UUID
nameUUIDv5(UUID namespace
, byte[] data
) {
58 return futureNameUUIDv5(namespace
, data
).invoke();
62 default UUID
nameUUIDv3(UUID namespace
, byte[] data
) {
63 return futureNameUUIDv3(namespace
, data
).invoke();