org.exolab.castor.jdo.drivers

Class SequenceKeyGenerator

Implemented Interfaces:
KeyGenerator

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

SEQUENCE key generator.
Version:
$Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:15 $
Author:
Oleg Nitz
See Also:
SequenceKeyGeneratorFactory

Field Summary

protected PersistenceFactory
_factory
protected String
_factoryName
protected String
_seqName

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

AFTER_INSERT, BEFORE_INSERT, DURING_INSERT

Constructor Summary

SequenceKeyGenerator(PersistenceFactory factory, Properties params, int sqlType)
Initialize the SEQUENCE 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)

Field Details

_factory

protected final PersistenceFactory _factory

_factoryName

protected final String _factoryName

_seqName

protected final String _seqName

Constructor Details

SequenceKeyGenerator

public SequenceKeyGenerator(PersistenceFactory factory,
                            Properties params,
                            int sqlType)
            throws MappingException
Initialize the SEQUENCE 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 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

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