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

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.HighLowKeyGenerator
All Implemented Interfaces:
KeyGenerator

public final class HighLowKeyGenerator
extends AbstractBeforeKeyGenerator

HIGH-LOW key generators.

Version:
$Revision: 8360 $ $Date: 2006-04-10 16:39:24 -0600 (Mon, 10 Apr 2006) $
Author:
Oleg Nitz, Bruce Snyder, Ralf Joachim
See Also:
HighLowKeyGeneratorFactory

Constructor Summary
HighLowKeyGenerator(PersistenceFactory factory, java.util.Properties params, int sqlType)
          Initialize the HIGH-LOW 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.
 void initFromParameters(java.util.Properties params)
           
 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

HighLowKeyGenerator

public HighLowKeyGenerator(PersistenceFactory factory,
                           java.util.Properties params,
                           int sqlType)
                    throws MappingException
Initialize the HIGH-LOW key generator.

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

initFromParameters

public void initFromParameters(java.util.Properties params)
                        throws MappingException
Throws:
MappingException

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

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