org.exolab.castor.jdo.drivers
Class SequenceKeyGenerator

java.lang.Object
  extended byorg.exolab.castor.jdo.drivers.SequenceKeyGenerator
All Implemented Interfaces:
KeyGenerator

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

SEQUENCE key generator.

Version:
$Revision: 1.7 $ $Date: 2004/12/14 20:06:33 $
Author:
Oleg Nitz
See Also:
SequenceKeyGeneratorFactory

Field Summary
protected  PersistenceFactory _factory
           
protected  java.lang.String _factoryName
           
protected  java.lang.String _seqName
           
 
Fields inherited from interface org.exolab.castor.persist.spi.KeyGenerator
AFTER_INSERT, BEFORE_INSERT, DURING_INSERT
 
Constructor Summary
SequenceKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)
          Initialize the SEQUENCE 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 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)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_factory

protected final PersistenceFactory _factory

_factoryName

protected final java.lang.String _factoryName

_seqName

protected final java.lang.String _seqName
Constructor Detail

SequenceKeyGenerator

public SequenceKeyGenerator(PersistenceFactory factory,
                            java.util.Properties params,
                            int sqlType)
                     throws MappingException
Initialize the SEQUENCE key generator.

Method Detail

generateKey

public java.lang.Object generateKey(java.sql.Connection conn,
                                    java.lang.String tableName,
                                    java.lang.String primKeyName,
                                    java.util.Properties props)
                             throws PersistenceException
Description copied from interface: KeyGenerator
Generate a new key for the specified table. This method is called when a new object is about to be created. In some environments the name of the owner of the object is known, e.g. the principal in a J2EE server. This method is never called for DURING_INSERT key generators.

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

patchSQL

public java.lang.String patchSQL(java.lang.String insert,
                                 java.lang.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
Parameters:
insert - Castor-generated INSERT statement
primKeyName - The primary key name
Throws:
MappingException

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