org.exolab.castor.jdo.keygen

Class IdentityKeyGenerator

Implemented Interfaces:
KeyGenerator

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

IDENTITY key generator.
Version:
$Revision: 7127 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
Authors:
Oleg Nitz
Stein M. Hugubakken
Bruce Snyder
See Also:
IdentityKeyGeneratorFactory

Fields inherited from interface org.exolab.castor.persist.spi.KeyGenerator

AFTER_INSERT, BEFORE_INSERT, DURING_INSERT

Constructor Summary

IdentityKeyGenerator(PersistenceFactory factory, int sqlType)
Initialize the IDENTITY key generator.

Method Summary

Object
generateKey(Connection conn, String tableName, String primKeyName, Properties props)
byte
getStyle()
Style of key generator: BEFORE_INSERT, DURING_INSERT or AFTER_INSERT ?
boolean
isInSameConnection()
Is key generated in the same connection as INSERT?
String
patchSQL(String insert, 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.

Constructor Details

IdentityKeyGenerator

public IdentityKeyGenerator(PersistenceFactory factory,
                            int sqlType)
            throws MappingException
Initialize the IDENTITY key generator.
Parameters:
factory - A PersistenceFactory instance.
sqlType - A SQLTypidentifier.
Throws:
MappingException - if this key generator is not compatible with the persistance factory.

Method Details

generateKey

public Object generateKey(Connection conn,
                          String tableName,
                          String primKeyName,
                          Properties props)
            throws PersistenceException
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 byte getStyle()
Style of key generator: BEFORE_INSERT, DURING_INSERT or AFTER_INSERT ?
Specified by:
getStyle in interface KeyGenerator

isInSameConnection

public boolean isInSameConnection()
Is key generated in the same connection as INSERT?
Specified by:
isInSameConnection in interface KeyGenerator

patchSQL

public String patchSQL(String insert,
                       String primKeyName)
            throws MappingException
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

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 -

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