org.castor.cpa.persistence.sql.driver
Class GenericFactory

java.lang.Object
  extended by org.castor.cpa.persistence.sql.driver.BaseFactory
      extended by org.castor.cpa.persistence.sql.driver.GenericFactory
All Implemented Interfaces:
PersistenceFactory
Direct Known Subclasses:
DB2Factory, DerbyFactory, HsqlFactory, InformixFactory, InstantDBFactory, InterbaseFactory, MySQLFactory, OracleFactory, PointbaseFactory, PostgreSQLFactory, ProgressFactory, SapDbFactory, SQLServerFactory, SybaseFactory

public class GenericFactory
extends BaseFactory

PersistenceFactory for generic JDBC driver.

Version:
$Revision: 8377 $ $Date: 2004-01-19 13:01:46 -0700 (Mon, 19 Jan 2004) $
Author:
Assaf Arkin, Bruce Snyder

Constructor Summary
GenericFactory()
           
 
Method Summary
protected  java.lang.String doubleQuoteName(java.lang.String name)
          Updated to handle input such as user.tablename.column.
 java.lang.String getFactoryName()
          Returns the name of this factory.
 java.lang.String getIdentitySelectString(java.lang.String tableName, java.lang.String columnName)
          Returns the database specific query string for retrieving last identity value.
 QueryExpression getQueryExpression()
          Returns a new empty query expression suitable for the underlying SQL engine.
 java.lang.String getSequenceAfterSelectString(java.lang.String seqName, java.lang.String tableName)
          Returns the database specific SELECT query string for fetching identity after the INSERT statement executed.
 java.lang.String getSequenceBeforeSelectString(java.lang.String seqName, java.lang.String tableName, int increment)
          Returns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.
 java.lang.String getSequenceNextValString(java.lang.String seqName)
          Returns the database engine specific string to fetch sequence next value.
 boolean isKeyGeneratorIdentitySupported()
          Does persistence factory support generation of unique keys with identity key generator?
 boolean isKeyGeneratorIdentityTypeSupported(int type)
          Does identity key generator support generation of unique keys for the given SQL type?
 boolean isKeyGeneratorSequenceSupported(boolean returning, boolean trigger)
          Does persistence factory support generation of new key at the time of new object creation with sequence key generator?
 boolean isKeyGeneratorSequenceTypeSupported(int type)
          Does Sequence key generator support generation of key for the given SQL type?
 java.lang.String quoteName(java.lang.String name)
          Returns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.
 
Methods inherited from class org.castor.cpa.persistence.sql.driver.BaseFactory
adjustSqlType, getCallQuery, getKeyGenerator, getPersistence
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenericFactory

public GenericFactory()
Method Detail

getFactoryName

public java.lang.String getFactoryName()
Description copied from interface: PersistenceFactory
Returns the name of this factory. A descriptive name that indicates the type of supported database server or SQL syntax.

Returns:
The name of this factory

getQueryExpression

public QueryExpression getQueryExpression()
Description copied from interface: PersistenceFactory
Returns a new empty query expression suitable for the underlying SQL engine. The implementation will construct SQL query statements in the preferred syntax.

Returns:
New empty query expression

quoteName

public java.lang.String quoteName(java.lang.String name)
Description copied from interface: PersistenceFactory
Returns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.

Parameters:
name - The identifier (table, column, etc)
Returns:
The quoted identifier

doubleQuoteName

protected final java.lang.String doubleQuoteName(java.lang.String name)
Updated to handle input such as user.tablename.column.


isKeyGeneratorIdentitySupported

public boolean isKeyGeneratorIdentitySupported()
Does persistence factory support generation of unique keys with identity key generator?

Returns:
true if persistence factory is able to generate unique keys with identity key generator, false otherwise.

isKeyGeneratorIdentityTypeSupported

public boolean isKeyGeneratorIdentityTypeSupported(int type)
Does identity key generator support generation of unique keys for the given SQL type?

Parameters:
type - SQL type to check for support by identity key generator.
Returns:
true if persistence factory is able to generate unique keys of given SQL type with identity key generator, false otherwise.

getIdentitySelectString

public java.lang.String getIdentitySelectString(java.lang.String tableName,
                                                java.lang.String columnName)
Returns the database specific query string for retrieving last identity value.

Parameters:
tableName - Name of the table from which identity needs to be fetched.
columnName - Name of the column from which identity needs to be fetched.
Returns:
SQL Query string for fetching the identity value.

isKeyGeneratorSequenceSupported

public boolean isKeyGeneratorSequenceSupported(boolean returning,
                                               boolean trigger)
Does persistence factory support generation of new key at the time of new object creation with sequence key generator?

Parameters:
returning - Return generated key value with insert statement?
trigger - Use a database trigger to generate key?
Returns:
true if persistence factory is able to generate key with sequence key generator, false otherwise.

isKeyGeneratorSequenceTypeSupported

public boolean isKeyGeneratorSequenceTypeSupported(int type)
Does Sequence key generator support generation of key for the given SQL type?

Parameters:
type - SQL type to check for support by sequence key generator.
Returns:
true if persistence factory is able to generate key of given SQL type with sequence key generator, false otherwise.

getSequenceNextValString

public java.lang.String getSequenceNextValString(java.lang.String seqName)
Returns the database engine specific string to fetch sequence next value.

Parameters:
seqName - Name of the sequence.
Returns:
String to fetch sequence next value.

getSequenceAfterSelectString

public java.lang.String getSequenceAfterSelectString(java.lang.String seqName,
                                                     java.lang.String tableName)
Returns the database specific SELECT query string for fetching identity after the INSERT statement executed.

Parameters:
seqName - Name of sequence.
tableName - Name of the table from which identity will be fetched.
Returns:
SELECT sql string

getSequenceBeforeSelectString

public java.lang.String getSequenceBeforeSelectString(java.lang.String seqName,
                                                      java.lang.String tableName,
                                                      int increment)
Returns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.

Parameters:
seqName - Name of sequence.
tableName - Name of the table from which identity will be fetched.
increment - Increment value used in Interbase database engine.
Returns:
SELECT sql string


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