org.castor.cpa.persistence.sql.keygen
Class SequenceBeforeKeyGenerator

java.lang.Object
  extended by org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
      extended by org.castor.cpa.persistence.sql.keygen.AbstractBeforeKeyGenerator
          extended by org.castor.cpa.persistence.sql.keygen.SequenceBeforeKeyGenerator
All Implemented Interfaces:
KeyGenerator

public final class SequenceBeforeKeyGenerator
extends AbstractBeforeKeyGenerator

Extends AbstractBeforeKeyGenerator and implements additional methods specific to Sequence Key generator. It invovles the fetching the Table ID before the record is inserted into the table.

Version:
$Revision$ $Date: 2009-07-13 17:22:43 (Tue, 28 Jul 2009) $
Author:
Ahmad Hassan, Ralf Joachim

Constructor Summary
SequenceBeforeKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)
          Initialize the SEQUENCE key generator for BEFORE_INSERT style generateKey(java.sql.Connection, java.lang.String, java.lang.String, java.util.Properties) is called before INSERT.
 
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.
protected  void initSqlTypeHandler(int sqlType)
          Initialize the Handler based on SQL Type.
 boolean isInSameConnection()
          Is key generated in the same connection as INSERT? For DURING_INSERT style this method is never called.
 
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractBeforeKeyGenerator
bindIdentity, buildStatement, executeStatement
 
Methods inherited from class org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SequenceBeforeKeyGenerator

public SequenceBeforeKeyGenerator(PersistenceFactory factory,
                                  java.util.Properties params,
                                  int sqlType)
                           throws MappingException
Initialize the SEQUENCE key generator for BEFORE_INSERT style generateKey(java.sql.Connection, java.lang.String, java.lang.String, java.util.Properties) is called before INSERT.

Parameters:
factory - A PersistenceFactory instance.
params - Database specific properties.
sqlType - A SQLTypidentifier.
Throws:
MappingException - if this key generator is not compatible with the persistance factory.
Method Detail

initSqlTypeHandler

protected void initSqlTypeHandler(int sqlType)
Initialize the Handler based on SQL Type.

Parameters:
sqlType - A SQLTypidentifier.

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.

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.

isInSameConnection

public boolean isInSameConnection()
Is key generated in the same connection as INSERT? For DURING_INSERT style this method is never called.

Returns:
{code}True{code} If this instance is in same JDBC Connection.


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