Project Wonder 5.0

com.webobjects.jdbcadaptor
Class DB2SynchronizationFactory

java.lang.Object
  extended by com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
      extended by com.webobjects.eoaccess.EOSynchronizationFactory
          extended by com.webobjects.jdbcadaptor.DB2SynchronizationFactory
All Implemented Interfaces:
com.webobjects.eoaccess.synchronization.EOSchemaGeneration, com.webobjects.eoaccess.synchronization.EOSchemaSynchronization
Direct Known Subclasses:
DB2ForISeriesSynchronizationFactory

public class DB2SynchronizationFactory
extends EOSynchronizationFactory
implements EOSchemaGeneration, EOSchemaSynchronization

A synchronization factory usable outside EOModeler. Original code was for Postress changed for DB2

Author:
simpson, giorgio_v

Nested Class Summary
 
Nested classes/interfaces inherited from class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory.Delegate
 
Nested classes/interfaces inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
com.webobjects.eoaccess.synchronization.EOSchemaGeneration.Delegate
 
Nested classes/interfaces inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaSynchronization
com.webobjects.eoaccess.synchronization.EOSchemaSynchronization.ColumnTypes
 
Field Summary
static String USING_KEY
           
 
Fields inherited from class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
_adaptor
 
Fields inherited from interface com.webobjects.eoaccess.EOSchemaGeneration
CreateDatabaseKey, CreateIndexesKey, CreatePrimaryKeySupportKey, CreateTablesKey, DropDatabaseKey, DropIndexesKey, DropPrimaryKeySupportKey, DropTablesKey, ForeignKeyConstraintsKey, PrimaryKeyConstraintsKey
 
Fields inherited from interface com.webobjects.eoaccess.EOSchemaSynchronization
AllowsNullKey, ColumnNameKey, ExternalNameKey, ExternalTypeKey, NameKey, PrecisionKey, RelationshipsKey, ScaleKey, SchemaSynchronizationForeignKeyConstraintsKey, SchemaSynchronizationPrimaryKeyConstraintsKey, SchemaSynchronizationPrimaryKeySupportKey, WidthKey
 
Fields inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaSynchronization
_commentsEnabled
 
Constructor Summary
DB2SynchronizationFactory(EOAdaptor adaptor)
           
 
Method Summary
 NSArray _foreignKeyConstraintStatementsForEntityGroup(NSArray group)
           
protected  boolean _shouldGenerateForeignKeyConstraints(EORelationship rel)
           
 String columnTypeStringForAttribute(EOAttribute attribute)
           
 NSArray createTableStatementsForEntityGroup(NSArray entityGroup)
          Quote table name if necessary
 NSArray dropPrimaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
          Generates the DB2-specific SQL statements to drop the primary key support.
 NSArray dropTableStatementsForEntityGroup(NSArray entityGroup)
          Generates the DB2-specific SQL statements to drop tables.
static boolean entityUsesSeparateTable(EOEntity entity)
           
protected  String externalNameForEntityWithoutSchema(EOEntity entity)
           
 NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
          Generates the DB2-specific SQL statements to enforce the foreign key constraints for relationship.
protected  String formatColumnName(String name)
           
protected  String formatTableName(String name)
           
protected  boolean isInEntityModeler(EOModel model)
          Returns true if Entity Modeler is running the operation on this model.
 NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
          Generates the DB2-specific SQL statements to enforce primary key constraints.
 NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
          Generates the DB2-specific SQL statements to create the primary key support.
static String replaceStringByStringInString(String old, String newString, String buffer)
          Replaces a given string by another string in a string.
 String schemaCreationScriptForEntities(NSArray allEntities, NSDictionary options)
           
 NSArray schemaCreationStatementsForEntities(NSArray allEntities, NSDictionary options)
           
 NSArray statementsToConvertColumnType(String columnName, String tableName, com.webobjects.eoaccess.synchronization.EOSchemaSynchronization.ColumnTypes oldType, com.webobjects.eoaccess.synchronization.EOSchemaSynchronization.ColumnTypes newType, NSDictionary options)
           
 NSArray statementsToDeleteColumnNamed(String columnName, String tableName, NSDictionary options)
           
 NSArray statementsToInsertColumnForAttribute(EOAttribute attribute, NSDictionary options)
           
 NSArray statementsToModifyColumnNullRule(String columnName, String tableName, boolean allowsNull, NSDictionary nsdictionary)
           
 NSArray statementsToRenameColumnNamed(String columnName, String tableName, String newName, NSDictionary nsdictionary)
           
 NSArray statementsToRenameTableNamed(String tableName, String newName, NSDictionary options)
           
 
Methods inherited from class com.webobjects.eoaccess.EOSynchronizationFactory
isColumnTypeEquivalentToColumnType, phraseCastingColumnNamed, statementsToCopyTableNamed, statementsToDropForeignKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeySupportForEntityGroups, statementsToImplementForeignKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeySupportForEntityGroups, statementsToUpdateObjectStoreForEntityGroups, statementsToUpdateObjectStoreForModel
 
Methods inherited from class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
_allowsNullForColumnNamed, _alterPhraseCoercingColumnsWithNames, _alterPhraseDeletingColumnsWithNames, _alterPhraseInsertingColumnsWithNames, _alterPhraseInsertionClausePrefixAtIndex, _alterPhraseJoinString, _arePurelyForeignKeyConstraintRelatedChanges, _canConvertColumnOfTypeToTypeOptions, _columnAttributesInEntityGroup, _columnCreationClauseForAttribute, _columnTypeForAttribute, _columnTypeForChangeDictionaryAndAttribute, _columnTypeNamedWithPrecisionScaleAndWidth, _directCoercionsForEntityGroupInTable, _entityGroupInModelForTableNamed, _entityGroupsInModelReferringToTableNamed, _expressionForEntity, _expressionForString, _firstAttributeInEntityGroupWithColumnName, _intForExpressionStringAdaptorChannel, _isPoorlyFormedColumnType, _isSignificantExceptionAtIndexOfSynchronizationStatements, _isTableCopyingRequiredByColumnChangesToEntityGroup, _isTableNamed, _nameInObjectStoreForEntityGroupWithChangeDictionary, _namesOfColumnsCoercedInChangeDictionaryForEntityGroup, _nullCountForColumnNamedInTableNamedBeneathModel, _parameterizedTypes, _prettyDictionary, _primaryKeyEntityGroupsForEntityGroups, _rowCountForTableNamedBeneathModel, _schemaCreationStatementsForEntityGroup, _schemaSynchronizationAdaptor, _schemaSynchronizationAdaptorChannelForModel, _schemaSynchronizationCommentsEnabled, _setSchemaSynchronizationCommentsEnabled, _sqlReplacements, _statementsCommentedWithString, _statementsToCreateTableForEntityGroupOptions, _statementsToDeleteTableNamedOptions, _statementsToDirectlyUpdateObjectStoreForEntityGroup, _statementsToDropPrimaryKeyConstraintsOnTableNamed, _statementsToIndirectlyUpdateObjectStoreForEntityGroupWithChangeDictionaryOptions, _statementsToUpdateObjectStoreForEntityGroup, _tableNameMapInChangeDictionary, _temporaryNameForTableName, adaptor, appendExpressionToScript, attributeInEntityWithColumnName, columnDescriptionForTableAndModel, createDatabaseStatementsForConnectionDictionary, createIndexExpressionsForEntity, createIndexStatementForEntity, createIndexStatementsForEntityGroup, createIndexStatementsForEntityGroups, createTableStatementsForEntityGroups, dropDatabaseStatementsForConnectionDictionary, dropIndexExpressionsForEntity, dropIndexStatementForEntity, dropIndexStatementsForEntityGroup, dropIndexStatementsForEntityGroups, dropPrimaryKeySupportStatementsForEntityGroups, dropTableStatementsForEntityGroups, indexDefinitionForEntity, indexDescriptionForTableAndModel, isCaseSensitive, isColumnTypeEquivalentToColumnType, logicalErrorsInChangeDictionaryForModelOptions, newChanges, newOptions, objectStoreChangesFromAttributeToAttribute, phraseCastingColumnNamed, primaryKeyConstraintStatementsForEntityGroups, primaryKeyEntityGroupsForEntities, primaryKeySupportStatementsForEntityGroups, schemaCreationScriptForEntities, schemaCreationStatementsForEntities, schemaGenerationDelegate, schemaSynchronizationDelegate, setSchemaGenerationDelegate, setSchemaSynchronizationDelegate, statementsToConvertColumnType, statementsToCopyTableNamed, statementsToDeleteColumnNamed, statementsToDropForeignKeyConstraintsOnEntityGroup, statementsToDropForeignKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeySupportForEntityGroups, statementsToImplementForeignKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeySupportForEntityGroups, statementsToInsertColumnForAttribute, statementsToModifyColumnNullRule, statementsToRenameColumnNamed, statementsToRenameTableNamed, statementsToUpdateObjectStoreForEntityGroups, statementsToUpdateObjectStoreForModel, supportsDirectColumnCoercion, supportsDirectColumnDeletion, supportsDirectColumnInsertion, supportsDirectColumnNullRuleModification, supportsDirectColumnRenaming, supportsSchemaSynchronization, supportsTableDescriptionIntrospection, tableDescriptionForModel, tableEntityGroupsForEntities
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
appendExpressionToScript, createDatabaseStatementsForConnectionDictionary, createIndexStatementsForEntityGroup, createIndexStatementsForEntityGroups, createTableStatementsForEntityGroups, dropDatabaseStatementsForConnectionDictionary, dropIndexStatementsForEntityGroup, dropIndexStatementsForEntityGroups, dropPrimaryKeySupportStatementsForEntityGroups, dropTableStatementsForEntityGroups, newOptions, primaryKeyConstraintStatementsForEntityGroups, primaryKeySupportStatementsForEntityGroups, schemaCreationScriptForEntities, schemaCreationStatementsForEntities, schemaGenerationDelegate, setSchemaGenerationDelegate
 
Methods inherited from interface com.webobjects.eoaccess.EOSchemaSynchronization
isColumnTypeEquivalentToColumnType, phraseCastingColumnNamed, statementsToCopyTableNamed, statementsToDropForeignKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeySupportForEntityGroups, statementsToImplementForeignKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeySupportForEntityGroups, statementsToUpdateObjectStoreForEntityGroups, statementsToUpdateObjectStoreForModel
 
Methods inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaSynchronization
columnDescriptionForTableAndModel, indexDescriptionForTableAndModel, isColumnTypeEquivalentToColumnType, newChanges, newOptions, objectStoreChangesFromAttributeToAttribute, phraseCastingColumnNamed, statementsToConvertColumnType, statementsToCopyTableNamed, statementsToDeleteColumnNamed, statementsToDropForeignKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeyConstraintsOnEntityGroups, statementsToDropPrimaryKeySupportForEntityGroups, statementsToImplementForeignKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeySupportForEntityGroups, statementsToInsertColumnForAttribute, statementsToModifyColumnNullRule, statementsToRenameColumnNamed, statementsToRenameTableNamed, statementsToUpdateObjectStoreForEntityGroups, statementsToUpdateObjectStoreForModel, supportsDirectColumnCoercion, supportsDirectColumnDeletion, supportsDirectColumnInsertion, supportsDirectColumnNullRuleModification, supportsDirectColumnRenaming, supportsSchemaSynchronization, supportsTableDescriptionIntrospection, tableDescriptionForModel
 

Field Detail

USING_KEY

public static final String USING_KEY
See Also:
Constant Field Values
Constructor Detail

DB2SynchronizationFactory

public DB2SynchronizationFactory(EOAdaptor adaptor)
Method Detail

formatTableName

protected String formatTableName(String name)
Overrides:
formatTableName in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory

formatColumnName

protected String formatColumnName(String name)
Overrides:
formatColumnName in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory

_foreignKeyConstraintStatementsForEntityGroup

public NSArray _foreignKeyConstraintStatementsForEntityGroup(NSArray group)
Overrides:
_foreignKeyConstraintStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory

_shouldGenerateForeignKeyConstraints

protected boolean _shouldGenerateForeignKeyConstraints(EORelationship rel)

dropPrimaryKeySupportStatementsForEntityGroup

public NSArray dropPrimaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
Generates the DB2-specific SQL statements to drop the primary key support.

Specified by:
dropPrimaryKeySupportStatementsForEntityGroup in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
dropPrimaryKeySupportStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
Parameters:
entityGroup - an array of EOEntity objects
Returns:
the array of SQL statements

dropTableStatementsForEntityGroup

public NSArray dropTableStatementsForEntityGroup(NSArray entityGroup)
Generates the DB2-specific SQL statements to drop tables.

Specified by:
dropTableStatementsForEntityGroup in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
dropTableStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
Parameters:
entityGroup - an array of EOEntity objects
Returns:
the array of SQL statements

foreignKeyConstraintStatementsForRelationship

public NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
Generates the DB2-specific SQL statements to enforce the foreign key constraints for relationship.

Specified by:
foreignKeyConstraintStatementsForRelationship in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
foreignKeyConstraintStatementsForRelationship in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
Parameters:
relationship - the relationship, as represented by EOF
Returns:
the array of SQL statements

externalNameForEntityWithoutSchema

protected String externalNameForEntityWithoutSchema(EOEntity entity)

primaryKeyConstraintStatementsForEntityGroup

public NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
Generates the DB2-specific SQL statements to enforce primary key constraints.

Specified by:
primaryKeyConstraintStatementsForEntityGroup in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
primaryKeyConstraintStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
Parameters:
entityGroup - an array of EOEntity objects
Returns:
the array of SQL statements

isInEntityModeler

protected boolean isInEntityModeler(EOModel model)
Returns true if Entity Modeler is running the operation on this model.

Parameters:
model - the model to check
Returns:
true if Entity Modeler is running

primaryKeySupportStatementsForEntityGroup

public NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
Generates the DB2-specific SQL statements to create the primary key support.

Specified by:
primaryKeySupportStatementsForEntityGroup in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
primaryKeySupportStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
Parameters:
entityGroup - an array of EOEntity objects
Returns:
the array of SQL statements

entityUsesSeparateTable

public static boolean entityUsesSeparateTable(EOEntity entity)

createTableStatementsForEntityGroup

public NSArray createTableStatementsForEntityGroup(NSArray entityGroup)
Quote table name if necessary

Specified by:
createTableStatementsForEntityGroup in interface com.webobjects.eoaccess.synchronization.EOSchemaGeneration
Overrides:
createTableStatementsForEntityGroup in class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory

replaceStringByStringInString

public static String replaceStringByStringInString(String old,
                                                   String newString,
                                                   String buffer)
Replaces a given string by another string in a string.

Parameters:
old - string to be replaced
newString - to be inserted
buffer - string to have the replacement done on it
Returns:
string after having all of the replacement done.

columnTypeStringForAttribute

public String columnTypeStringForAttribute(EOAttribute attribute)

statementsToModifyColumnNullRule

public NSArray statementsToModifyColumnNullRule(String columnName,
                                                String tableName,
                                                boolean allowsNull,
                                                NSDictionary nsdictionary)
Overrides:
statementsToModifyColumnNullRule in class EOSynchronizationFactory

statementsToConvertColumnType

public NSArray statementsToConvertColumnType(String columnName,
                                             String tableName,
                                             com.webobjects.eoaccess.synchronization.EOSchemaSynchronization.ColumnTypes oldType,
                                             com.webobjects.eoaccess.synchronization.EOSchemaSynchronization.ColumnTypes newType,
                                             NSDictionary options)
Overrides:
statementsToConvertColumnType in class EOSynchronizationFactory

statementsToRenameColumnNamed

public NSArray statementsToRenameColumnNamed(String columnName,
                                             String tableName,
                                             String newName,
                                             NSDictionary nsdictionary)
Overrides:
statementsToRenameColumnNamed in class EOSynchronizationFactory

statementsToInsertColumnForAttribute

public NSArray statementsToInsertColumnForAttribute(EOAttribute attribute,
                                                    NSDictionary options)
Overrides:
statementsToInsertColumnForAttribute in class EOSynchronizationFactory

statementsToRenameTableNamed

public NSArray statementsToRenameTableNamed(String tableName,
                                            String newName,
                                            NSDictionary options)
Overrides:
statementsToRenameTableNamed in class EOSynchronizationFactory

statementsToDeleteColumnNamed

public NSArray statementsToDeleteColumnNamed(String columnName,
                                             String tableName,
                                             NSDictionary options)
Overrides:
statementsToDeleteColumnNamed in class EOSynchronizationFactory

schemaCreationScriptForEntities

public String schemaCreationScriptForEntities(NSArray allEntities,
                                              NSDictionary options)
Overrides:
schemaCreationScriptForEntities in class EOSynchronizationFactory

schemaCreationStatementsForEntities

public NSArray schemaCreationStatementsForEntities(NSArray allEntities,
                                                   NSDictionary options)
Overrides:
schemaCreationStatementsForEntities in class EOSynchronizationFactory

Last updated: Wed, Feb 22, 2012 • 07:00 AM EST

Copyright © 2002 – 2011 Project Wonder.