+package org.argeo.api.uuid;
+
+import java.nio.charset.Charset;
+
+/** An {@link UuidFactory} which also (trivially) produces {@link TypedUuid}. */
+public interface TypedUuidFactory extends UuidFactory {
+ /** Creates a {@link TimeUuid} (v1). */
+ default TimeUuid newTimeUuid() {
+ return new TimeUuid(timeUUID());
+ }
+
+ /** Creates an MD5 {@link NameUuid} (v3). */
+ default NameUuid newNameUuidV3(TypedUuid namespace, String name, Charset charset) {
+ return new NameUuid(nameUUIDv3(namespace.get(), name, charset), namespace, name, charset);
+ }
+
+ /** Creates a {@link RandomUuid}, using {@link #randomUUID()}. */
+ default RandomUuid newRandomUuid() {
+ return new RandomUuid(randomUUID());
+ }
+
+ /** Creates an SHA1 {@link NameUuid} (v5). */
+ default NameUuid newNameUuidV5(TypedUuid namespace, String name, Charset charset) {
+ return new NameUuid(nameUUIDv5(namespace.get(), name, charset), namespace, name, charset);
+ }
+}