Package org.hibernate.id.uuid
Class CustomVersionOneStrategy
java.lang.Object
org.hibernate.id.uuid.CustomVersionOneStrategy
- All Implemented Interfaces:
Serializable
,UuidValueGenerator
,UUIDGenerationStrategy
public class CustomVersionOneStrategy
extends Object
implements UUIDGenerationStrategy, UuidValueGenerator
Applies a version 1 (time-based) generation strategy (using ip address rather than mac address) but applies them in a
different layout. The strategy is very similar to the legacy
UUIDHexGenerator
id generator
but uses a RFC 4122 compliant layout (variant 2).- See Also:
- Implementation Note:
- Can be a bottleneck due to the need to synchronize in order to increment an internal count as part of the algorithm.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic long
generateLeastSignificantBits
(long seed) Generate the UUID valueGenerate the UUID.int
Which variant, according to IETF RFC 4122, of UUID does this strategy generate? RFC 4122 defines 5 variants (though it only describes algorithms to generate 4): 1 = time based 2 = DCE based using POSIX UIDs 3 = name based (md5 hash) 4 = random numbers based 5 = name based (sha-1 hash)long
static void
-
Constructor Details
-
CustomVersionOneStrategy
public CustomVersionOneStrategy()
-
-
Method Details
-
getGeneratedVersion
public int getGeneratedVersion()Description copied from interface:UUIDGenerationStrategy
Which variant, according to IETF RFC 4122, of UUID does this strategy generate? RFC 4122 defines 5 variants (though it only describes algorithms to generate 4):- 1 = time based
- 2 = DCE based using POSIX UIDs
- 3 = name based (md5 hash)
- 4 = random numbers based
- 5 = name based (sha-1 hash)
Returning the values above should be reserved to those generators creating variants compliant with the corresponding RFC definition; others can feel free to return other values as they see fit.
Informational only, and not used at this time.
- Specified by:
getGeneratedVersion
in interfaceUUIDGenerationStrategy
- Returns:
- The supported generation version
-
getMostSignificantBits
public long getMostSignificantBits() -
generateLeastSignificantBits
public static long generateLeastSignificantBits(long seed) -
main
-