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

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

public final class NoKeyGenerator
extends AbstractKeyGenerator

Key generator implementation that does not generate key.

Version:
$Revision: 8241 $ $Date: 2006-04-13 06:47:36 -0600 (Thu, 13 Apr 2006) $
Author:
Ahmad Hassan, Ralf Joachim

Constructor Summary
NoKeyGenerator(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.
 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.
 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.AbstractKeyGenerator
closeSeparateConnection, getSeparateConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NoKeyGenerator

public NoKeyGenerator(PersistenceFactory factory)
Constructor.

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

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.

generateKey

public java.lang.Object generateKey(java.sql.Connection conn,
                                    java.lang.String tableName,
                                    java.lang.String primKeyName,
                                    java.util.Properties props)
                             throws PersistenceException
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

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