Class CustomVersionOneStrategy

  • All Implemented Interfaces:
    Serializable, UUIDGenerationStrategy

    public class CustomVersionOneStrategy
    extends Object
    implements UUIDGenerationStrategy
    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:
    Serialized Form
    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 Detail

      • CustomVersionOneStrategy

        public CustomVersionOneStrategy()
    • Method Detail

      • 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 interface UUIDGenerationStrategy
        Returns:
        The supported generation version
      • getMostSignificantBits

        public long getMostSignificantBits()
      • generateLeastSignificantBits

        public static long generateLeastSignificantBits​(long seed)
      • main

        public static void main​(String[] args)