org.hibernate.id.uuid
Class CustomVersionOneStrategy

java.lang.Object
  extended by org.hibernate.id.uuid.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).

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

Author:
Steve Ebersole
See Also:
Serialized Form

Constructor Summary
CustomVersionOneStrategy()
           
 
Method Summary
static long generateLeastSignificantBits(long seed)
           
 UUID generateUUID(SessionImplementor 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(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): 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

generateUUID

public UUID generateUUID(SessionImplementor session)
Description copied from interface: UUIDGenerationStrategy
Generate the UUID.

Specified by:
generateUUID in interface UUIDGenerationStrategy
Parameters:
session - The session asking for the generation
Returns:
The generated UUID.

getMostSignificantBits

public long getMostSignificantBits()

generateLeastSignificantBits

public static long generateLeastSignificantBits(long seed)

main

public static void main(String[] args)


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.