]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.uuid/src/org/argeo/api/uuid/TypedUuidFactory.java
Make user logged-in logging less verbose
[lgpl/argeo-commons.git] / org.argeo.api.uuid / src / org / argeo / api / uuid / TypedUuidFactory.java
1 package org.argeo.api.uuid;
2
3 import java.nio.charset.Charset;
4
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());
10 }
11
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);
15 }
16
17 /** Creates a {@link RandomUuid}, using {@link #randomUUID()}. */
18 default RandomUuid newRandomUuid() {
19 return new RandomUuid(randomUUID());
20 }
21
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);
25 }
26 }