Class CustomVersionOneStrategy

  • All Implemented Interfaces:
    java.io.Serializable, UUIDGenerationStrategy

    public class CustomVersionOneStrategy
    extends java.lang.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).

    NOTE : Can be a bottle neck due to the need to synchronize in order to increment an internal count as part of the algorithm.

    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static long generateLeastSignificantBits​(long seed)  
      java.util.UUID generateUUID​(SharedSessionContractImplementor session)
      Generate the UUID.
      int getGeneratedVersion()
      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.
      long getMostSignificantBits()  
      static void main​(java.lang.String[] args)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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​(java.lang.String[] args)