Class UUIDKeyGeneratorFactory

java.lang.Object
org.castor.cpa.persistence.sql.keygen.UUIDKeyGeneratorFactory
All Implemented Interfaces:
KeyGeneratorFactory

public final class UUIDKeyGeneratorFactory extends Object implements KeyGeneratorFactory
UUID key generator factory. The short name of this key generator is "UUID".
It uses the following alrorithm: The uuid is a combination of the IP address, the current time in milliseconds since 1970 and a static counter. The complete key consists of a 30 character fixed length string.
Brief statement: The IP only exists once during runtime of castor, the current time in milliseconds (updated every 55 mills) is in combination to the IP pretty unique. Considering a static counter will be used a database-wide unique key will be created.
Version:
$Revision: 8334 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
Author:
Thomas Fach, Ralf Joachim
See Also:
  • Constructor Details

    • UUIDKeyGeneratorFactory

      public UUIDKeyGeneratorFactory()
  • Method Details

    • getKeyGeneratorName

      public String getKeyGeneratorName()
      Get the short name of the key generator. It is used to reference key generators in a mapping configuration file. If several key generators of the same type are used for the same database, then they are referenced by aliases.
      Specified by:
      getKeyGeneratorName in interface KeyGeneratorFactory
      Returns:
      Name of the KeyGenerator used to identify key generator (types).
    • getKeyGenerator

      public KeyGenerator getKeyGenerator(PersistenceFactory factory, Properties params, int sqlType) throws MappingException
      Produce the key generator.
      Specified by:
      getKeyGenerator in interface KeyGeneratorFactory
      Parameters:
      factory - Helper object for obtaining database-specific QuerySyntax.
      params - Parameters for key generator.
      sqlType - The SQL type of the primary key, the generated identities must have the corresponding Java type, e.g. java.sql.Types.INTEGER corresponds to java.lang.Integer, java.sql.Types.NUMERIC corresponds to java.lang.BigDecimal.
      Returns:
      A KeyGenerator instance.
      Throws:
      MappingException - If there's a problem resolving the mapping information.