- java.lang.Object
-
- com.github.f4b6a3.uuid.factory.UuidFactory
-
- com.github.f4b6a3.uuid.factory.AbstNameBasedFactory
-
- Direct Known Subclasses:
NameBasedMd5Factory,NameBasedSha1Factory
public abstract class AbstNameBasedFactory extends UuidFactory
Abstract factory for creating name-based unique identifiers (UUIDv3 and UUIDv5). The name space is optional for compatibility with the JDK's UUID method for generating UUIDv3, which isUUID.nameUUIDFromBytes(byte[]).- See Also:
UuidNamespace, RFC 9562
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.github.f4b6a3.uuid.factory.UuidFactory
UuidFactory.Parameters
-
-
Field Summary
Fields Modifier and Type Field Description protected StringalgorithmThe hash algorithm.protected static StringALGORITHM_MD5The MD5 algorithm.protected static StringALGORITHM_SHA1The SHA-1 algorithm.protected byte[]namespaceThe namespace (optional).-
Fields inherited from class com.github.f4b6a3.uuid.factory.UuidFactory
version, versionMask
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstNameBasedFactory(UuidVersion version, String algorithm, byte[] namespace)Protected constructor that receives the message digest algorithm and an optional name space.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UUIDcreate()Create a UUIDUUIDcreate(byte[] name)Returns a name-based UUID.UUIDcreate(UuidNamespace namespace, byte[] name)Returns a name-based UUID.UUIDcreate(UuidNamespace namespace, String name)Returns a name-based UUID.UUIDcreate(UuidFactory.Parameters parameters)Creates a UUID using parameters.UUIDcreate(String name)Returns a name-based UUID.UUIDcreate(String namespace, byte[] name)Returns a name-based UUID.UUIDcreate(String namespace, String name)Returns a name-based UUID.UUIDcreate(UUID namespace, byte[] name)Returns a name-based UUID.UUIDcreate(UUID namespace, String name)Returns a name-based UUID.-
Methods inherited from class com.github.f4b6a3.uuid.factory.UuidFactory
getVersion, nameBytes, nameBytes, namespaceBytes, namespaceBytes, namespaceBytes, toUuid
-
-
-
-
Field Detail
-
namespace
protected byte[] namespace
The namespace (optional).
-
algorithm
protected final String algorithm
The hash algorithm.
-
ALGORITHM_MD5
protected static final String ALGORITHM_MD5
The MD5 algorithm.- See Also:
- Constant Field Values
-
ALGORITHM_SHA1
protected static final String ALGORITHM_SHA1
The SHA-1 algorithm.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstNameBasedFactory
protected AbstNameBasedFactory(UuidVersion version, String algorithm, byte[] namespace)
Protected constructor that receives the message digest algorithm and an optional name space.- Parameters:
version- the version number (3 or 5)algorithm- a message digest algorithm (MD5 or SHA-1)namespace- a name space byte array (null or 16 bytes)
-
-
Method Detail
-
create
public UUID create(byte[] name)
Returns a name-based UUID.- Parameters:
name- a byte array- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is null
-
create
public UUID create(String name)
Returns a name-based UUID. The name string is encoded into a sequence of bytes using UTF-8.- Parameters:
name- a string- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is null
-
create
public UUID create(UUID namespace, byte[] name)
Returns a name-based UUID.- Parameters:
namespace- a name space UUIDname- a byte array- Returns:
- a name-based UUID
- Throws:
IllegalArgumentException- if name is null
-
create
public UUID create(UUID namespace, String name)
Returns a name-based UUID. The name string is encoded into a sequence of bytes using UTF-8.- Parameters:
namespace- a name space UUIDname- a string- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is null
-
create
public UUID create(String namespace, byte[] name)
Returns a name-based UUID.- Parameters:
namespace- a name space stringname- a byte array- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is nullInvalidUuidException- if the name space is invalid- See Also:
InvalidUuidException
-
create
public UUID create(String namespace, String name)
Returns a name-based UUID.The name string is encoded into a sequence of bytes using UTF-8.
- Parameters:
namespace- a name space stringname- a string- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is nullInvalidUuidException- if the name space is invalid- See Also:
InvalidUuidException
-
create
public UUID create(UuidNamespace namespace, byte[] name)
Returns a name-based UUID.- Parameters:
namespace- a name space enumerationname- a byte array- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is null
-
create
public UUID create(UuidNamespace namespace, String name)
Returns a name-based UUID.The name string is encoded into a sequence of bytes using UTF-8.
- Parameters:
namespace- a name space enumerationname- a string- Returns:
- a name-based UUID
- Throws:
NullPointerException- if name is null
-
create
public UUID create()
Description copied from class:UuidFactoryCreate a UUID- Specified by:
createin classUuidFactory- Returns:
- a UUID
-
create
public UUID create(UuidFactory.Parameters parameters)
Description copied from class:UuidFactoryCreates a UUID using parameters.- Specified by:
createin classUuidFactory- Parameters:
parameters- parameters object- Returns:
- a UUID
-
-