org.exolab.castor.jdo.drivers

Class HighLowKeyGenerator

Implemented Interfaces:
KeyGenerator

public class HighLowKeyGenerator
extends java.lang.Object
implements KeyGenerator

The parent abstract class for HIGH-LOW key generators
Version:
$Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:11 $
Author:
Oleg Nitz
See Also:
HighLowKeyGeneratorFactory

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

AFTER_INSERT, BEFORE_INSERT, DURING_INSERT

Constructor Summary

HighLowKeyGenerator(PersistenceFactory factory, Properties params, int sqlType)
Initialize the HIGH-LOW 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)

Constructor Details

HighLowKeyGenerator

public HighLowKeyGenerator(PersistenceFactory factory,
                           Properties params,
                           int sqlType)
            throws MappingException
Initialize the HIGH-LOW key generator.

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 final byte getStyle()
Style of key generator: BEFORE_INSERT, DURING_INSERT or AFTER_INSERT ?
Specified by:
getStyle in interface KeyGenerator

isInSameConnection

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

patchSQL

public final 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

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