WebObjects 5.2

com.webobjects.jdbcadaptor
Class OpenBasePlugIn.OpenBaseSynchronizationFactory

java.lang.Object
  |
  +--com.webobjects.eoaccess.EOSynchronizationFactory
        |
        +--com.webobjects.jdbcadaptor.OpenBasePlugIn.OpenBaseSynchronizationFactory
All Implemented Interfaces:
EOSchemaGeneration, EOSchemaSynchronization
Enclosing class:
OpenBasePlugIn

public static class OpenBasePlugIn.OpenBaseSynchronizationFactory
extends EOSynchronizationFactory


Inner classes inherited from class com.webobjects.eoaccess.EOSynchronizationFactory
EOSynchronizationFactory.Delegate
 
Inner classes inherited from class com.webobjects.eoaccess.EOSchemaSynchronization
EOSchemaSynchronization.ColumnTypes
 
Fields inherited from interface com.webobjects.eoaccess.EOSchemaGeneration
CreateDatabaseKey, CreatePrimaryKeySupportKey, CreateTablesKey, DropDatabaseKey, DropPrimaryKeySupportKey, DropTablesKey, ForeignKeyConstraintsKey, PrimaryKeyConstraintsKey
 
Fields inherited from interface com.webobjects.eoaccess.EOSchemaSynchronization
AllowsNullKey, ColumnNameKey, ExternalNameKey, ExternalTypeKey, NameKey, PrecisionKey, RelationshipsKey, ScaleKey, SchemaSynchronizationForeignKeyConstraintsKey, SchemaSynchronizationPrimaryKeyConstraintsKey, SchemaSynchronizationPrimaryKeySupportKey, WidthKey
 
Constructor Summary
OpenBasePlugIn.OpenBaseSynchronizationFactory(EOAdaptor adaptor)
           
 
Method Summary
 NSArray dropPrimaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
          The default implementation returns null.
 NSArray dropPrimaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
          Returns an array of EOSQLExpression objects that define the SQL necessary to drop the primary key generation support for all the entities in each of the the entity groups in entityGroups.
 NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
          Returns an array of EOSQLExpression objects that define the SQL statements necessary to create foreign key constraints for relationship.
 boolean isColumnTypeEquivalentToColumnType(EOSchemaSynchronization.ColumnTypes candidate, EOSchemaSynchronization.ColumnTypes columnType, NSDictionary options)
          Returns true if the name, precision, width, and scale of candidate are identical to the name, precision, width, and scale of columnType, false otherwise.
 NSDictionary objectStoreChangesFromAttributeToAttribute(EOAttribute schemaAttribute, EOAttribute modelAttribute)
          Compares schemaAttribute with modelAttribute and returns a change dictionary of state that is different between the the two.
 NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
          Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key constraints for entityGroup.
 NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
          Start Of EOSchemaGeneration
 NSArray primaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
          Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key generation support for all the entities in each of the the entity groups in entityGroups.
 NSArray statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups, NSDictionary changes, NSDictionary options)
          Returns an array of EOSQLExpressions to drop foreign key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name.
 NSArray statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups, NSDictionary changes, NSDictionary options)
          Returns an array of EOSQLExpressions to drop primary key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name.
 NSArray statementsToImplementPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups, NSDictionary changes, NSDictionary options)
          Returns an array of EOSQLExpressions to implement primary key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name.
 NSArray statementsToModifyColumnNullRule(String columnName, String tableName, boolean allowsNull, NSDictionary options)
          Returns null by default.
 NSArray statementsToRenameColumnNamed(String columnName, String tableName, String newName, NSDictionary options)
          The default implementation returns null.
 NSArray statementsToRenameTableNamed(String tableName, String newName, NSDictionary options)
          Returns an array of EOSQLExpressions to rename in place the the table indentifed by tableName to newName.
 boolean supportsDirectColumnCoercion()
          The default implementation returns false.
 boolean supportsDirectColumnDeletion()
          The default implementation returns false.
 boolean supportsDirectColumnInsertion()
          The default implementation returns false.
 boolean supportsDirectColumnNullRuleModification()
          The default implementation returns false.
 boolean supportsDirectColumnRenaming()
          The default implementation returns false.
 boolean supportsSchemaSynchronization()
          The default implementation returns false.
 
Methods inherited from class com.webobjects.eoaccess.EOSynchronizationFactory
adaptor, appendExpressionToScript, createDatabaseStatementsForConnectionDictionary, createTableStatementsForEntityGroup, createTableStatementsForEntityGroups, dropDatabaseStatementsForConnectionDictionary, dropTableStatementsForEntityGroup, dropTableStatementsForEntityGroups, isCaseSensitive, logicalErrorsInChangeDictionaryForModelOptions, phraseCastingColumnNamed, primaryKeyConstraintStatementsForEntityGroups, primaryKeyEntityGroupsForEntities, schemaCreationScriptForEntities, schemaCreationStatementsForEntities, schemaSynchronizationDelegate, setSchemaSynchronizationDelegate, statementsToConvertColumnType, statementsToCopyTableNamed, statementsToDeleteColumnNamed, statementsToDropPrimaryKeySupportForEntityGroups, statementsToImplementForeignKeyConstraintsOnEntityGroups, statementsToImplementPrimaryKeySupportForEntityGroups, statementsToInsertColumnForAttribute, statementsToUpdateObjectStoreForEntityGroups, statementsToUpdateObjectStoreForModel, tableEntityGroupsForEntities
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpenBasePlugIn.OpenBaseSynchronizationFactory

public OpenBasePlugIn.OpenBaseSynchronizationFactory(EOAdaptor adaptor)
Method Detail

dropPrimaryKeySupportStatementsForEntityGroup

public NSArray dropPrimaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
Description copied from class: EOSynchronizationFactory
The default implementation returns null. Can be overridden by subclasses to return an array of EOSQLExpression objects that define the SQL necessary to drop the primary key generation support for entityGroup.
Overrides:
dropPrimaryKeySupportStatementsForEntityGroup in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
entityGroup - An array of EOEntity objects that have the same external name.
Returns:
null by default.
See Also:
EOSynchronizationFactory.primaryKeySupportStatementsForEntityGroup( NSArray entityGroup), EOEntity.externalName()

dropPrimaryKeySupportStatementsForEntityGroups

public NSArray dropPrimaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
Description copied from class: EOSynchronizationFactory
Returns an array of EOSQLExpression objects that define the SQL necessary to drop the primary key generation support for all the entities in each of the the entity groups in entityGroups. Returns an empty array if entityGroups is null or empty. If primary key generation is not supported, returns an array that contains the string "The 'Drop Primary Key Support' option is unavailable."

This method invokes dropPrimaryKeySupportStatementsForEntityGroup for each entity group in entityGroups and returns an array of all the resulting EOSQLExpressions. Since the default implementation of dropPrimaryKeySupportStatementsForEntityGroup returns null, this method returns the "not supported" value (see above) by default, but a subclass need only override dropPrimaryKeySupportStatementsForEntityGroup in order to enable this method as well.

Overrides:
dropPrimaryKeySupportStatementsForEntityGroups in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
entityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
Returns:
An array of EOSQLExpressions that define the SQL necessary to drop primary key generation support for entityGroups, or an empty array, or an array containing a string message that the option is not supported.
See Also:
EOSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup), EOSynchronizationFactory.schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options), EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity), EOEntity.externalName()

foreignKeyConstraintStatementsForRelationship

public NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
Description copied from interface: EOSchemaGeneration
Returns an array of EOSQLExpression objects that define the SQL statements necessary to create foreign key constraints for relationship. Returns an empty array if unable to generate foreign key constraints for relationship
Overrides:
foreignKeyConstraintStatementsForRelationship in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaGeneration
Parameters:
relationship - An EORelationship.
Returns:
An array of EOSQLExpressions to create the foreign key constraints for relationship, or an empty array.
See Also:
EOSQLExpression, EOSynchronizationFactory.foreignKeyConstraintStatementsForRelationship(EORelationship relationship), EOSchemaGeneration.schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)

isColumnTypeEquivalentToColumnType

public boolean isColumnTypeEquivalentToColumnType(EOSchemaSynchronization.ColumnTypes candidate,
                                                  EOSchemaSynchronization.ColumnTypes columnType,
                                                  NSDictionary options)
Description copied from class: EOSynchronizationFactory
Returns true if the name, precision, width, and scale of candidate are identical to the name, precision, width, and scale of columnType, false otherwise. If the columns are equivalent, the candidate column can be copied to columnType without casting.
Overrides:
isColumnTypeEquivalentToColumnType in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
candidate - A column to potentially copy.
columnType - A column into which to copy candidate.
options - Unused.
Returns:
true if the specified attributes of candidate are identical to the corresponding attributes of columnType.

objectStoreChangesFromAttributeToAttribute

public NSDictionary objectStoreChangesFromAttributeToAttribute(EOAttribute schemaAttribute,
                                                               EOAttribute modelAttribute)
Description copied from interface: EOSchemaSynchronization
Compares schemaAttribute with modelAttribute and returns a change dictionary of state that is different between the the two. The possible keys in the change dictionary are:

The values in the change dictionary are the corresponding values of schemaAttribute, that is, the values stored in the database.

Overrides:
objectStoreChangesFromAttributeToAttribute in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaSynchronization
Parameters:
schemaAttribute - An EOAttribute as represented in the database.
modelAttribute - An EOAttribute as represented in the EOModel.
Returns:
A change dictionary for the difference in state between schemaAttribute and modelAttribute.

primaryKeyConstraintStatementsForEntityGroup

public NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
Description copied from class: EOSynchronizationFactory
Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key constraints for entityGroup. Returns an empty array if any of the primary key attributes in entityGroup don't have a column name or if entityGroup is null.

This method creates a statement of the form:

 
     ALTER TABLE TABLE_NAME ADD PRIMARY KEY
     (PRIMARY_KEY_COLUMN_NAMES)

where TABLE_NAME is the external name for the first entity in entityGroup and PRIMARY_KEY_COLUMN_NAMES is a comma-separated list of the column names of the first entity's primary key attributes. If the subclass's database server's primary key constraint semantics are different, the subclass should override this method.

Overrides:
primaryKeyConstraintStatementsForEntityGroup in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
entityGroup - An array of EOEntity objects that have the same external name.
Returns:
An array of EOSQLExpressions that define the SQL necessary to create primary key constraints for entityGroup, or an empty array.
See Also:
EOAttribute.columnName(), EOEntity.externalName(), EOEntity.primaryKeyAttributes()

primaryKeySupportStatementsForEntityGroup

public NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
Start Of EOSchemaGeneration
Overrides:
primaryKeySupportStatementsForEntityGroup in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
entityGroup - An array of EOEntity objects that have the same external name.
Returns:
null by default.
See Also:
EOSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup), EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity), EOEntity.externalName()

primaryKeySupportStatementsForEntityGroups

public NSArray primaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
Description copied from class: EOSynchronizationFactory
Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key generation support for all the entities in each of the the entity groups in entityGroups. Returns an empty array if entityGroups is null or empty. If primary key generation is not supported, returns an array that contains the string "The 'Create Primary Key Support' option is unavailable."

This method invokes primaryKeySupportStatementsForEntityGroup for each entity group in entityGroups and returns an array of all the resulting EOSQLExpressions. Since the default implementation of primaryKeySupportStatementsForEntityGroup returns null, this method returns the "not supported" value (see above) by default, but a subclass need only override primaryKeySupportStatementsForEntityGroup in order to enable this method as well.

Overrides:
primaryKeySupportStatementsForEntityGroups in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
entityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
Returns:
An array of EOSQLExpressions that define the SQL necessary to create primary key generation support for entityGroups, or an empty array, or an array containing a string message that the option is not supported.
See Also:
EOSynchronizationFactory.primaryKeySupportStatementsForEntityGroup( NSArray entityGroup), EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity), EOEntity.externalName()

statementsToDropForeignKeyConstraintsOnEntityGroups

public NSArray statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
                                                                   NSDictionary changes,
                                                                   NSDictionary options)
Description copied from interface: EOSchemaSynchronization
Returns an array of EOSQLExpressions to drop foreign key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name. The changes dictionary identifies the changes to make to the database schema. The options dictionary describes the aspects of the schema for which to create SQL statements.
Overrides:
statementsToDropForeignKeyConstraintsOnEntityGroups in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaSynchronization
Parameters:
entityGroups - An array containing arrays of EOEntity objects with the same external name.
changes - A dictionary of changes to make to the database schema.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
An array of the EOSQLExpressions to drop foreign key constraints for the table corresponding to entityGroups.
See Also:
EOSchemaSynchronization

statementsToDropPrimaryKeyConstraintsOnEntityGroups

public NSArray statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups,
                                                                   NSDictionary changes,
                                                                   NSDictionary options)
Description copied from interface: EOSchemaSynchronization
Returns an array of EOSQLExpressions to drop primary key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name. The changes dictionary identifies the changes to make to the database schema. The options dictionary describes the aspects of the schema for which to create SQL statements.
Overrides:
statementsToDropPrimaryKeyConstraintsOnEntityGroups in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaSynchronization
Parameters:
entityGroups - An array containing arrays of EOEntity objects with the same external name.
changes - A dictionary of changes to make to the database schema.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
An array of the EOSQLExpressions to drop primary key constraints for the table corresponding to entityGroups.
See Also:
EOSchemaSynchronization

statementsToImplementPrimaryKeyConstraintsOnEntityGroups

public NSArray statementsToImplementPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups,
                                                                        NSDictionary changes,
                                                                        NSDictionary options)
Description copied from interface: EOSchemaSynchronization
Returns an array of EOSQLExpressions to implement primary key constraints for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name. The changes dictionary identifies the changes to make to the database schema. The options dictionary describes the aspects of the schema for which to create SQL statements.
Overrides:
statementsToImplementPrimaryKeyConstraintsOnEntityGroups in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaSynchronization
Parameters:
entityGroups - An array containing arrays of EOEntity objects with the same external name.
changes - A dictionary of changes to make to the database schema.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
An array of the EOSQLExpressions to implement primary key constraints for the table corresponding to entityGroups.
See Also:
EOSchemaSynchronization

statementsToModifyColumnNullRule

public NSArray statementsToModifyColumnNullRule(String columnName,
                                                String tableName,
                                                boolean allowsNull,
                                                NSDictionary options)
Description copied from class: EOSynchronizationFactory
Returns null by default. Can be overridden by subclasses to return an array of EOSQLExpressions to modify in place of the column identified by columnName in the table identified by tableName to either allow or not allow NULL values as specified by allowsNull. The options dictionary describes the aspects of the schema for which to create SQL statements.
Overrides:
statementsToModifyColumnNullRule in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
columnName - The name of a column to be modified.
tableName - The name of the table containing the specified column.
allowsNull - A Boolean value to determine whether to allow or not allow NULL values in the specified column.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
null by default.
See Also:
EOSchemaSynchronization

statementsToRenameColumnNamed

public NSArray statementsToRenameColumnNamed(String columnName,
                                             String tableName,
                                             String newName,
                                             NSDictionary options)
Description copied from class: EOSynchronizationFactory
The default implementation returns null. Can be overridden by subclasses to return an array of EOSQLExpressions to rename the column indentifed by columnName in the table identified by tableName to newName. options is a dictionary describing the aspects of the schema for which to create SQL statements.
Overrides:
statementsToRenameColumnNamed in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Parameters:
columnName - The name of a column to be renamed.
tableName - The name of the table containing the specified column.
newName - The new name for the specified column.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
null by default.

statementsToRenameTableNamed

public NSArray statementsToRenameTableNamed(String tableName,
                                            String newName,
                                            NSDictionary options)
Description copied from interface: EOSchemaSynchronization
Returns an array of EOSQLExpressions to rename in place the the table indentifed by tableName to newName. options is a dictionary describing the aspects of the schema for which to create SQL statements.
Overrides:
statementsToRenameTableNamed in class EOSynchronizationFactory
Following copied from interface: com.webobjects.eoaccess.EOSchemaSynchronization
Parameters:
tableName - The name of a table to be renamed.
newName - The new name for the specified table.
options - A dictionary describing the aspects of the schema for which to create SQL statements.
Returns:
An array of the EOSQLExpressions to rename in place the specified table.

supportsDirectColumnCoercion

public boolean supportsDirectColumnCoercion()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can change the type of an existing column in place.
Overrides:
supportsDirectColumnCoercion in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can change the type of an existing column in place.

supportsDirectColumnDeletion

public boolean supportsDirectColumnDeletion()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can delete columns.
Overrides:
supportsDirectColumnDeletion in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can delete columns.

supportsDirectColumnInsertion

public boolean supportsDirectColumnInsertion()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can add columns to a table.
Overrides:
supportsDirectColumnInsertion in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can add columns to a table.

supportsDirectColumnNullRuleModification

public boolean supportsDirectColumnNullRuleModification()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can modify the null rule of an existing column in place.
Overrides:
supportsDirectColumnNullRuleModification in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can modify the nullrule of an existing column in place.

supportsDirectColumnRenaming

public boolean supportsDirectColumnRenaming()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can rename columns in a table.
Overrides:
supportsDirectColumnRenaming in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can rename columns in a table.

supportsSchemaSynchronization

public boolean supportsSchemaSynchronization()
Description copied from class: EOSynchronizationFactory
The default implementation returns false. Can be overridden by subclasses to return true if the adaptor can update the database schema to reflect changes in an EOModel.
Overrides:
supportsSchemaSynchronization in class EOSynchronizationFactory
Following copied from class: com.webobjects.eoaccess.EOSynchronizationFactory
Returns:
true if the adaptor can update the database schema.

Last updated Fri Feb 21 13:15:00 PST 2003.

Copyright © 2003 Apple Computer, Inc.