]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.uuid/src/org/argeo/api/uuid/TypedUuidFactory.java
1 package org
.argeo
.api
.uuid
;
3 import java
.nio
.charset
.Charset
;
5 /** An {@link UuidFactory} which also (trivially) produces {@link TypedUuid}. */
6 public interface TypedUuidFactory
extends UuidFactory
{
7 /** Creates a {@link TimeUuid} (v1). */
8 default TimeUuid
newTimeUuid() {
9 return new TimeUuid(timeUUID());
12 /** Creates an MD5 {@link NameUuid} (v3). */
13 default NameUuid
newNameUuidV3(TypedUuid namespace
, String name
, Charset charset
) {
14 return new NameUuid(nameUUIDv3(namespace
.get(), name
, charset
), namespace
, name
, charset
);
17 /** Creates a {@link RandomUuid}, using {@link #randomUUID()}. */
18 default RandomUuid
newRandomUuid() {
19 return new RandomUuid(randomUUID());
22 /** Creates an SHA1 {@link NameUuid} (v5). */
23 default NameUuid
newNameUuidV5(TypedUuid namespace
, String name
, Charset charset
) {
24 return new NameUuid(nameUUIDv5(namespace
.get(), name
, charset
), namespace
, name
, charset
);