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

java.lang.Object
  extended by org.castor.cpa.persistence.sql.keygen.AbstractKeyGenerator
      extended by org.castor.cpa.persistence.sql.keygen.AbstractBeforeKeyGenerator
All Implemented Interfaces:
KeyGenerator
Direct Known Subclasses:
HighLowKeyGenerator, MaxKeyGenerator, SequenceBeforeKeyGenerator, UUIDKeyGenerator

public abstract class AbstractBeforeKeyGenerator
extends AbstractKeyGenerator

Abstract Class that implements the KeyGenerator Interface for BEFORE_INSERT style. The key generator is used for producing identities for objects before they are created in the database.

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

Constructor Summary
AbstractBeforeKeyGenerator(PersistenceFactory factory)
          Constructor.
 
Method Summary
 void bindIdentity(Identity internalIdentity, java.sql.PreparedStatement stmt)
          Binds the identity values.
 KeyGenerator buildStatement(SQLEngine engine)
          Builds the SQL insert statement.
 java.lang.Object executeStatement(Database database, java.sql.Connection conn, Identity identity, ProposedEntity entity)
          Executes the SQL statement after preparing the PreparedStatement.
 
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
 
Methods inherited from interface org.castor.cpa.persistence.sql.keygen.KeyGenerator
generateKey, isInSameConnection
 

Constructor Detail

AbstractBeforeKeyGenerator

public AbstractBeforeKeyGenerator(PersistenceFactory factory)
Constructor.

Parameters:
factory - Persistence factory for the database engine the entity is persisted in. Used to format the SQL statement
Method Detail

buildStatement

public KeyGenerator buildStatement(SQLEngine engine)
Builds the SQL insert statement.

Parameters:
engine - SQL engine for all persistence operations at entities of the type this class is responsible for. Holds all required information of the entity type.
Returns:
KeyGenerator

executeStatement

public java.lang.Object executeStatement(Database database,
                                         java.sql.Connection conn,
                                         Identity identity,
                                         ProposedEntity entity)
                                  throws PersistenceException
Executes the SQL statement after preparing the PreparedStatement.

Parameters:
database - A database instance.
conn - An Open JDBC connection.
identity - Identity of the object to insert.
entity - Entity instance from which field values to be fetached to bind with sql insert statement.
Returns:
Identity
Throws:
PersistenceException - If failed to insert record into database. This could happen if a database access error occurs, If identity size mismatches, unable to retrieve Identity, If provided Identity is null, If Extended engine is null.

bindIdentity

public void bindIdentity(Identity internalIdentity,
                         java.sql.PreparedStatement stmt)
                  throws java.sql.SQLException,
                         PersistenceException
Binds the identity values.

Parameters:
internalIdentity - Identity values.
stmt - PreapraedStatement containing the sql insert statement.
Throws:
java.sql.SQLException - If a database access error occurs.
PersistenceException - If identity size mismatches.


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