org.exolab.castor.jdo.keygen
Class UUIDKeyGenerator

java.lang.Object
  extended by org.exolab.castor.jdo.keygen.UUIDKeyGenerator
All Implemented Interfaces:
KeyGenerator

public final class UUIDKeyGenerator
extends java.lang.Object
implements KeyGenerator

UUID key generator.

Version:
$Revision: 1.1 $ $Date: 2005/06/01 12:08:16 $
Author:
Thomas Fach, Bruce Snyder
See Also:
UUIDKeyGeneratorFactory

Field Summary
 
Fields inherited from interface org.exolab.castor.persist.spi.KeyGenerator
AFTER_INSERT, BEFORE_INSERT, DURING_INSERT
 
Constructor Summary
UUIDKeyGenerator(PersistenceFactory factory, int sqlType)
          Initialize the UUID key generator.
 
Method Summary
 java.lang.Object generateKey(java.sql.Connection conn, java.lang.String tableName, java.lang.String primKeyName, java.util.Properties props)
          Generate a new unique key for the specified table.
 byte getStyle()
          Style of key generator: BEFORE_INSERT, DURING_INSERT or AFTER_INSERT ?
 boolean isInSameConnection()
          Is key generated in the same connection as INSERT?
 java.lang.String patchSQL(java.lang.String insert, java.lang.String primKeyName)
          Gives a possibility to patch the Castor-generated SQL statement for INSERT (makes sense for DURING_INSERT key generators)
 void supportsSqlType(int sqlType)
          Determine if the key generator supports a given sql type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UUIDKeyGenerator

public UUIDKeyGenerator(PersistenceFactory factory,
                        int sqlType)
                 throws MappingException
Initialize the UUID key generator.

Throws:
MappingException
Method Detail

supportsSqlType

public void supportsSqlType(int sqlType)
                     throws MappingException
Determine if the key generator supports a given sql type.

Specified by:
supportsSqlType in interface KeyGenerator
Parameters:
sqlType -
Throws:
MappingException

generateKey

public java.lang.Object generateKey(java.sql.Connection conn,
                                    java.lang.String tableName,
                                    java.lang.String primKeyName,
                                    java.util.Properties props)
                             throws PersistenceException
Generate a new unique key for the specified table.

Specified by:
generateKey in interface KeyGenerator
Parameters:
conn - An open connection within the given transaction
tableName - The table name
primKeyName - The primary key name
props - A temporary replacement for Principal object
Returns:
A new key
Throws:
PersistenceException - An error occured talking to persistent storage

getStyle

public final byte getStyle()
Style of key generator: BEFORE_INSERT, DURING_INSERT or AFTER_INSERT ?

Specified by:
getStyle in interface KeyGenerator

patchSQL

public final java.lang.String patchSQL(java.lang.String insert,
                                       java.lang.String primKeyName)
Gives a possibility to patch the Castor-generated SQL statement for INSERT (makes sense for DURING_INSERT key generators)

Specified by:
patchSQL in interface KeyGenerator
Parameters:
insert - Castor-generated INSERT statement
primKeyName - The primary key name

isInSameConnection

public boolean isInSameConnection()
Is key generated in the same connection as INSERT?

Specified by:
isInSameConnection in interface KeyGenerator


Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com