|
WebObjects 5.4.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory
public class EOSchemaSynchronizationFactory
This class has been introduced to implement the interfaces EOSchemaGeneration and EOSchemaSynchronization, which were introduced in WebObjects 5.0. The API is essentially the same as in WebObjects 4.5.x except that methods that were formerly static methods of EOSQLExpression are now are instance methods of EOSchemaGeneration or EOSchemaSynchronization.
EOSchemaGeneration,
EOSchemaSynchronization| Nested Class Summary | |
|---|---|
static interface |
EOSchemaSynchronizationFactory.Delegate
The Delegate interface for EOSynchronizationFactory is restricted to use by the EOModeler application and should not be implemented by others. |
| Nested classes/interfaces inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaSynchronization |
|---|
EOSchemaSynchronization.ColumnTypes |
| Constructor Summary | |
|---|---|
EOSchemaSynchronizationFactory(EOAdaptor adaptor)
Creates and returns a new EOSynchronization factory that uses the specified adaptor to communicate with an external database. |
|
| Method Summary | |
|---|---|
EOAdaptor |
adaptor()
Returns the receiver's EOAdaptor. |
void |
appendExpressionToScript(EOSQLExpression expression,
StringBuffer script)
Appends expression's statement to script along with any necessary delimiter. |
EOAttribute |
attributeInEntityWithColumnName(EOEntity entity,
String columnName)
|
EOSchemaColumnDescription |
columnDescriptionForTableAndModel(String columnName,
String tableName,
EOModel eomodel)
Return a Column Description object that describe the database schema. |
NSArray |
createDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary,
NSDictionary administrativeConnectionDictionary)
The default implementation returns null. |
protected NSArray |
createIndexExpressionsForEntity(EOEntity entity,
EOEntityIndex anIndex,
EOEntity masterEntity)
|
protected String |
createIndexStatementForEntity(EOEntity entity,
String indexName,
String tableName,
NSArray attributeList)
|
NSArray |
createIndexStatementsForEntityGroup(NSArray entityGroup)
|
NSArray |
createIndexStatementsForEntityGroups(NSArray entityGroups)
|
NSArray |
createTableStatementsForEntityGroup(NSArray entityGroup)
Returns an array of EOSQLExpression objects that define the SQL necessary to create a table for entityGroup. |
NSArray |
createTableStatementsForEntityGroups(NSArray entityGroups)
Returns an array of EOSQLExpression objects that define the SQL necessary to create the tables for each of the entity groups in entityGroups. |
NSArray |
dropDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary,
NSDictionary administrativeConnectionDictionary)
The default implementation returns null. |
protected NSArray |
dropIndexExpressionsForEntity(EOEntity entity,
EOEntityIndex anIndex,
EOEntity masterEntity)
|
protected String |
dropIndexStatementForEntity(EOEntity entity,
String indexName,
String tableName)
|
NSArray |
dropIndexStatementsForEntityGroup(NSArray entityGroup)
|
NSArray |
dropIndexStatementsForEntityGroups(NSArray entityGroups)
|
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 |
dropTableStatementsForEntityGroup(NSArray entityGroup)
Returns an array of EOSQLExpression objects that define the SQL necessary to drop the table identified by entityGroup. |
NSArray |
dropTableStatementsForEntityGroups(NSArray entityGroups)
Returns an array of EOSQLExpression objects that define the SQL necessary to drop the tables for all 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. |
protected String |
formatColumnName(String name)
Formats the column name for insertion in a select statement. |
protected String |
formatTableName(String name)
Formats the table name for insertion in a select statement. |
protected NSArray |
indexDefinitionForEntity(EOEntity entity)
|
EOSchemaIndexDescription |
indexDescriptionForTableAndModel(String indexName,
String tableName,
EOModel eomodel)
Return an Index Description object that describe the database schema. |
boolean |
isCaseSensitive()
The default implementation returns false. |
boolean |
isColumnTypeEquivalentToColumnType(EOSchemaSynchronization.ColumnTypes candidate,
EOSchemaSynchronization.ColumnTypes columnType,
EOSchemaGenerationOptions 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. |
NSArray |
logicalErrorsInChangeDictionaryForModelOptions(EOSchemaSynchronizationModelChanges changes,
EOModel model,
EOSchemaGenerationOptions options)
Steps through the change dictionary changes and returns an array of strings identifying all the columns and their tables where the allows NULL rule has been changed in the corresponding model to disallow NULL values, but the database still contains such values. |
EOSchemaSynchronizationModelChanges |
newChanges()
Creates a new Changes object, to facilitate subclassing. |
EOSchemaGenerationOptions |
newOptions()
Creates a new Options object, to facilitate subclassing. |
EOSchemaSynchronizationColumnChanges |
objectStoreChangesFromAttributeToAttribute(EOAttribute schemaAttribute,
EOAttribute modelAttribute)
Compares schemaAttribute with modelAttribute and returns a change dictionary of state that is different between the the two. |
String |
phraseCastingColumnNamed(String columnName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes castType,
EOSchemaGenerationOptions options)
The default implementation returns columnName. |
NSArray |
primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key constraints for entityGroup. |
NSArray |
primaryKeyConstraintStatementsForEntityGroups(NSArray entityGroups)
Returns an array of EOSQLExpression objects that define the SQL necessary to create the primary key constraints for the entities specified in entityGroups. |
NSArray |
primaryKeyEntityGroupsForEntities(NSArray entities)
Returns an array of primary key entity groups for entities, or an empty array if entities is empty or null. |
NSArray |
primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
The default implementation returns null. |
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. |
String |
schemaCreationScriptForEntities(NSArray allEntities,
EOSchemaGenerationOptions options)
Returns a script of SQL statements suitable to create the schema based on options for the EOEntity objects in allEntities. |
NSArray |
schemaCreationStatementsForEntities(NSArray allEntities,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions suitable to create the schema based on options for the EOEntity objects in allEntities. |
EOSchemaGeneration.Delegate |
schemaGenerationDelegate()
|
EOSchemaSynchronizationFactory.Delegate |
schemaSynchronizationDelegate()
Returns the receiver's delegate. |
void |
setSchemaGenerationDelegate(EOSchemaGeneration.Delegate delegate)
|
void |
setSchemaSynchronizationDelegate(EOSchemaSynchronizationFactory.Delegate delegate)
Sets the receiver's delegate to delegate. |
NSArray |
statementsToConvertColumnType(String columnName,
String tableName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes newType,
EOSchemaGenerationOptions options)
The default implementation returns null. |
NSArray |
statementsToCopyTableNamed(String tempTableName,
NSArray entityGroup,
EOSchemaSynchronizationTableChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to copy the specified table into a new table, whose definition is provided by entityGroup, an array of EOEntity objects with the same external name. |
NSArray |
statementsToDeleteColumnNamed(String columnName,
String tableName,
EOSchemaGenerationOptions options)
The default implementation returns null. |
NSArray |
statementsToDropForeignKeyConstraintsOnEntityGroup(NSArray entityGroup,
EOSchemaSynchronizationTableChanges changes,
EOSchemaGenerationOptions options)
|
NSArray |
statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions 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,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions 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 |
statementsToDropPrimaryKeySupportForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to drop primary key support for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name. |
NSArray |
statementsToImplementForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to implement foreign 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,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions 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 |
statementsToImplementPrimaryKeySupportForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to implement primary key support for the table corresponding to entityGroups, which is an array containing arrays of EOEntity objects with the same external name. |
NSArray |
statementsToInsertColumnForAttribute(EOAttribute attribute,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to insert a column in the database schema for the specified attribute. |
NSArray |
statementsToModifyColumnNullRule(String columnName,
String tableName,
boolean allowsNull,
EOSchemaGenerationOptions options)
Returns null by default. |
NSArray |
statementsToRenameColumnNamed(String columnName,
String tableName,
String newName,
EOSchemaGenerationOptions options)
The default implementation returns null. |
NSArray |
statementsToRenameTableNamed(String oldTableName,
String newTableName,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to rename in place the the table indentifed by tableName to newName. |
NSArray |
statementsToUpdateObjectStoreForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to update the database table that corresponds to entityGroups according to the changes and SQL generation instructions in the changes and options dictionaries. |
NSArray |
statementsToUpdateObjectStoreForModel(EOModel model,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to synchronize the database with the EOModel model. |
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. |
boolean |
supportsTableDescriptionIntrospection()
The default implementation returns false. |
EOSchemaTableDescription |
tableDescriptionForModel(String tableName,
EOModel eomodel)
Return a Table Description object that describe the database schema. |
NSArray |
tableEntityGroupsForEntities(NSArray entities)
Returns an array of table entity groups for entities, or an empty array if entities is empty or null. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public EOSchemaSynchronizationFactory(EOAdaptor adaptor)
adaptor to communicate with an external database.
adaptor - An EOAdaptor to associate with the new EOSynchronizationFactory.| Method Detail |
|---|
public void setSchemaGenerationDelegate(EOSchemaGeneration.Delegate delegate)
setSchemaGenerationDelegate in interface EOSchemaGenerationpublic EOSchemaGeneration.Delegate schemaGenerationDelegate()
schemaGenerationDelegate in interface EOSchemaGenerationpublic EOAdaptor adaptor()
public EOSchemaGenerationOptions newOptions()
newOptions in interface EOSchemaGenerationnewOptions in interface EOSchemaSynchronizationpublic EOSchemaSynchronizationModelChanges newChanges()
newChanges in interface EOSchemaSynchronizationprotected String formatTableName(String name)
name - table name
protected String formatColumnName(String name)
name - column name
public NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
EOSchemaGenerationrelationship. Returns an empty array if unable to generate foreign key constraints for relationship
foreignKeyConstraintStatementsForRelationship in interface EOSchemaGenerationrelationship - An EORelationship.
relationship, or an empty array.EOSQLExpression,
EOSchemaSynchronizationFactory.foreignKeyConstraintStatementsForRelationship(EORelationship relationship),
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)public NSArray createTableStatementsForEntityGroup(NSArray entityGroup)
entityGroup. Returns an empty array if entityGroup is null or empty.
EOSynchronizationFactory's implementation does the following:
entityGroup.entityGroup's entities.(whereCREATE TABLE TABLE_NAME (LIST_STRING)
TABLE_NAME is the external name of the EOEntity objects in entityGroup and LIST_STRING is the expression's listString.The following is an example of a CREATE TABLE statement produced by this method:
create table EMPLOYEE ( EMP_ID int not null, DEPT_ID int null, LAST_NAME varchar(40) not null, PHONE char(12) null, HIRE_DATE date null, SALARY number(7, 2) null )
If a database server's table creation semantics are different, a subclass should override this method or one or more of the following methods as appropriate:
addCreateClauseForAttributecolumnTypeStringForAttributeallowsNullClauseForConstraint
createTableStatementsForEntityGroup in interface EOSchemaGenerationentityGroup - An array of EOEntity objects that have the same external name.
entityGroup, or an empty array.EOSchemaSynchronizationFactory.dropTableStatementsForEntityGroup(NSArray entityGroup),
EOSchemaSynchronizationFactory.dropTableStatementsForEntityGroup(NSArray entityGroup),
EOSQLExpression.addCreateClauseForAttribute( EOAttribute anEOAttribute),
EOSQLExpression.columnTypeStringForAttribute( EOAttribute anEOAttribute),
(boolean aBoolean),
EOEntity.externalName()public NSArray dropTableStatementsForEntityGroup(NSArray entityGroup)
entityGroup. Returns an empty array if entityGroup is null. The drop statement generated by this method should be sufficient to remove the
table created by createTableStatementsForEntityGroup's statements.
This method creates a statement of the form:
DROP TABLE TABLE_NAME
where TABLE_NAME is the external name of the first entity in entityGroup.
If the database server's drop semantics are different, a subclass should override this method.
dropTableStatementsForEntityGroup in interface EOSchemaGenerationentityGroup - An array of EOEntity objects that have the same external name.
entityGroup, or an empty array.EOSchemaSynchronizationFactory.createTableStatementsForEntityGroup( NSArray entityGroup),
EOEntity.externalName()public NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
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.
primaryKeyConstraintStatementsForEntityGroup in interface EOSchemaGenerationentityGroup - An array of EOEntity objects that have the same external name.
entityGroup, or an empty array.EOAttribute.columnName(),
EOEntity.externalName(),
EOEntity.primaryKeyAttributes()public NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
null. Can be overridden by subclasses to return an array of EOSQLExpression objects that define the SQL necessary to create the primary key generation support for entityGroup.
primaryKeySupportStatementsForEntityGroup in interface EOSchemaGenerationentityGroup - An array of EOEntity objects that have the same external name.
null by default.EOSchemaSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup),
EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity),
EOEntity.externalName()public NSArray dropPrimaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
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.
dropPrimaryKeySupportStatementsForEntityGroup in interface EOSchemaGenerationentityGroup - An array of EOEntity objects that have the same external name.
null by default.EOSchemaSynchronizationFactory.primaryKeySupportStatementsForEntityGroup( NSArray entityGroup),
EOEntity.externalName()public NSArray createTableStatementsForEntityGroups(NSArray entityGroups)
entityGroups. Returns an empty array if entityGroups is empty.
This method invokes createTableStatementsForEntityGroup for each entity group in entityGroups and returns an array of all the resulting EOSQLExpressions.
createTableStatementsForEntityGroups in interface EOSchemaGenerationentityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups.EOSchemaSynchronizationFactory.createTableStatementsForEntityGroup( NSArray entityGroup),
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options),
EOEntity.externalName()public NSArray dropTableStatementsForEntityGroups(NSArray entityGroups)
entityGroups. Returns an empty array if entityGroups is empty.
This method invokes dropTableStatementsForEntityGroup for each entity group in entityGroups and returns an array of all the resulting EOSQLExpressions.
dropTableStatementsForEntityGroups in interface EOSchemaGenerationentityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups, or an empty array.EOSchemaSynchronizationFactory.dropTableStatementsForEntityGroup( NSArray entityGroup),
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options),
EOEntity.externalName()public NSArray primaryKeyConstraintStatementsForEntityGroups(NSArray entityGroups)
entityGroups. Returns an empty array if entityGroups is null or empty.
This method invokes EOSQLExpression's implementation of primaryKeyConstraintStatementsForEntityGroup for each entity group in entityGroups and returns an array of all the resulting EOSQLExpressions.
primaryKeyConstraintStatementsForEntityGroups in interface EOSchemaGenerationentityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups, or an empty array.EOSchemaSynchronizationFactory.primaryKeyConstraintStatementsForEntityGroup( NSArray entityGroup),
EOEntity.externalName()public NSArray primaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
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.
primaryKeySupportStatementsForEntityGroups in interface EOSchemaGenerationentityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups, or an empty array, or an array containing a string message that the option is not supported.EOSchemaSynchronizationFactory.primaryKeySupportStatementsForEntityGroup( NSArray entityGroup),
EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity),
EOEntity.externalName()public NSArray dropPrimaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
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.
dropPrimaryKeySupportStatementsForEntityGroups in interface EOSchemaGenerationentityGroups - An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups, or an empty array, or an array containing a string message that the option is not supported.EOSchemaSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup),
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options),
EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity),
EOEntity.externalName()
public void appendExpressionToScript(EOSQLExpression expression,
StringBuffer script)
expression's statement to script along with any necessary delimiter. script is the StringBuffer in which the SQL script is built. Used in conjunction with schemaCreationStatementsForEntities and
schemaCreationScriptForEntities to build up the SQL script to generate the specified schema for a set of EOEntities.
This method appends the SQL statement for expression to script followed by a semicolon and a newline. A subclass of EOSQLExpression only need to override this method if the delimiter for its database server is different.
appendExpressionToScript in interface EOSchemaGenerationexpression - An EOSQLExpression.script - A StringBuffer used to build the SQL script.EOSchemaSynchronizationFactory.createTableStatementsForEntityGroup( NSArray entityGroup)
public String schemaCreationScriptForEntities(NSArray allEntities,
EOSchemaGenerationOptions options)
options for the EOEntity objects in allEntities. Returns an empty string if either options or allEntities is empty or null.
options is a dictionary whose keys possible aspects of a schema and whose respective values of "YES" or "NO" determine whether that schema option is enabled for a particular invocation. The possible option keys are: CreateTablesKeyDropTablesKeyCreatePrimaryKeySupportKeyDropPrimaryKeySupportKeyPrimaryKeyConstraintsKeyForeignKeyConstraintsKeyCreateDatabaseKeyDropDatabaseKey
This method invokes schemaCreationStatementsForEntities with entities and options and then uses appendExpressionToScript to build up the script string from the EOSQLExpressions returned by
schemaCreationStatementsForEntities.
schemaCreationScriptForEntities in interface EOSchemaGenerationallEntities - An array of EOEntity objects.options - A dictionary describing the schema options for which to generate SQL statements.
allEntities with the given options.EOSchemaSynchronizationFactory.appendExpressionToScript( EOSQLExpression expression, StringBuffer script),
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)public NSArray tableEntityGroupsForEntities(NSArray entities)
entities, or an empty array if entities is empty or null. Table entity groups are arrays of entities with attributes that have column names; within each group, the entities have the same external name.
entities - An array of EOEntities for which to obtain table entity groups.
entities.public NSArray primaryKeyEntityGroupsForEntities(NSArray entities)
entities, or an empty array if entities is empty or null. Primary key entity groups are arrays of entities with simple primary keys; within each group, the entities have the same external name.
entities - An array of EOEntities for which to obtain primary key entity groups.
entities.EOEntity
public NSArray schemaCreationStatementsForEntities(NSArray allEntities,
EOSchemaGenerationOptions options)
options for the EOEntity objects in allEntities. Returns an empty array if either allEntities or options is null or empty.
options is a dictionary whose keys possible aspects of a schema and whose respective values of "YES" or "NO" determine whether that schema option is enabled for a particular invocation. The possible option keys are:
CreateTablesKeyDropTablesKeyCreatePrimaryKeySupportKeyDropPrimaryKeySupportKeyPrimaryKeyConstraintsKeyForeignKeyConstraintsKeyCreateDatabaseKeyDropDatabaseKey
Used in conjunction with appendExpressionToScript and schemaCreationScriptForEntities to build up the SQL script to generate the specified schema for allEntities.
schemaCreationStatementsForEntities in interface EOSchemaGenerationallEntities - An array of EOEntity objects.options - A dictionary describing the schema options for which to generate SQL statements.
allEntities with the given options.#schemaCreationScriptForEntities( NSArray allEntities, NSDictionary options),
EOSchemaSynchronizationFactory.appendExpressionToScript( EOSQLExpression expression, StringBuffer script)
public NSArray createDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary,
NSDictionary administrativeConnectionDictionary)
null. Can be overridden by subclasses to generate and return an array of EOSQLExpressions defining the SQL statements to create a database or user that can be accessed by the provided connectionDictionary and
administrativeConnectionDictionary.
createDatabaseStatementsForConnectionDictionary in interface EOSchemaGenerationconnectionDictionary - A dictionary of information needed by the adaptor to connect to the database server.administrativeConnectionDictionary - A dictionary of administrative login information for the database server.
null by default.EOSchemaSynchronizationFactory.dropDatabaseStatementsForConnectionDictionary( NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
public NSArray dropDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary,
NSDictionary administrativeConnectionDictionary)
null. Can be overridden by subclasses to generate and return an array of EOSQLExpressions defining the SQL statements to drop a database or user that is accessed by the provided connectionDictionary and
administrativeConnectionDictionary.
dropDatabaseStatementsForConnectionDictionary in interface EOSchemaGenerationconnectionDictionary - A dictionary of information needed by the adaptor to connect to the database server.administrativeConnectionDictionary - A dictionary of administrative login information for the database server.
null by default.EOSchemaSynchronizationFactory.createDatabaseStatementsForConnectionDictionary( NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
public EOAttribute attributeInEntityWithColumnName(EOEntity entity,
String columnName)
entity - columnName -
public boolean isCaseSensitive()
false.
false by default.
public boolean isColumnTypeEquivalentToColumnType(EOSchemaSynchronization.ColumnTypes candidate,
EOSchemaSynchronization.ColumnTypes columnType,
EOSchemaGenerationOptions options)
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.
isColumnTypeEquivalentToColumnType in interface EOSchemaSynchronizationcandidate - A column to potentially copy.columnType - A column into which to copy candidate.options - Unused.
true if the specified attributes of candidate are identical to the corresponding attributes of columnType.
public NSArray logicalErrorsInChangeDictionaryForModelOptions(EOSchemaSynchronizationModelChanges changes,
EOModel model,
EOSchemaGenerationOptions options)
changes and returns an array of strings identifying all the columns and their tables where the allows NULL rule has been changed in the corresponding model to disallow NULL values, but the database still contains such values.
Returns null if no logical errors are detected.
changes - A change dictionary for model with respect to a database.model - An EOModel to synchronize with a database.options - Unused.
changes with respect to model.EOSchemaSynchronizationFactory.objectStoreChangesFromAttributeToAttribute( EOAttribute schemaAttribute, EOAttribute modelAttribute)
public String phraseCastingColumnNamed(String columnName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes castType,
EOSchemaGenerationOptions options)
columnName. Can be overridden by subclasses to return an SQL string to cast the values in the column identified by columnName from the current type to a new type specified by castType.
options is a dictionary describing the aspects of the schema for which to create SQL statements.
phraseCastingColumnNamed in interface EOSchemaSynchronizationcolumnName - The name of a database column.type - Unused.castType - Unused.options - Unused.
columnType by default.EOAttribute.columnName()public void setSchemaSynchronizationDelegate(EOSchemaSynchronizationFactory.Delegate delegate)
delegate.
delegate - The object to set as the receiver's delegate.public EOSchemaSynchronizationFactory.Delegate schemaSynchronizationDelegate()
public NSArray statementsToCopyTableNamed(String tempTableName,
NSArray entityGroup,
EOSchemaSynchronizationTableChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroup, an array of EOEntity objects with the same external name. This method is used when the adaptor doesn't support the in-place table modifications
required to synchronize the database to a model.
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.
statementsToCopyTableNamed in interface EOSchemaSynchronizationtempTableName - The name of the table to be copied.entityGroup - An array of EOEntity objects that defines a new database table into which to copy the named table.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.
tableName to a new table defined by entityGroup.EOSchemaSynchronization
public NSArray statementsToConvertColumnType(String columnName,
String tableName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes newType,
EOSchemaGenerationOptions options)
null. Can be overridden by subclasses to return an array of EOSQLExpressions to convert in place of the type of the column indentifed by columnName in the table identified by tableName from the current
type to the type specified by newType. options is a dictionary describing the aspects of the schema for which to create SQL statements.
statementsToConvertColumnType in interface EOSchemaSynchronizationcolumnName - The name of a column to be modified.tableName - The name of the table containing the specified column.type - The current type of the specified column.newType - The type to which to convert the specified column.options - A dictionary describing the aspects of the schema for which to create SQL statements.
empty array by default.
public NSArray statementsToDeleteColumnNamed(String columnName,
String tableName,
EOSchemaGenerationOptions options)
null. Can be overridden by subclasses to return an array of EOSQLExpressions to delete in place of the column indentifed by tableName. options is a dictionary
describing the aspects of the schema for which to create SQL statements.
statementsToDeleteColumnNamed in interface EOSchemaSynchronizationcolumnName - The name of a column to be deleted.tableName - The name of the table containing the specified column.options - A dictionary describing the aspects of the schema for which to create SQL statements.
empty array by default.
public NSArray statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, 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.
statementsToDropForeignKeyConstraintsOnEntityGroups in interface EOSchemaSynchronizationentityGroups - 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToDropForeignKeyConstraintsOnEntityGroup(NSArray entityGroup,
EOSchemaSynchronizationTableChanges changes,
EOSchemaGenerationOptions options)
public NSArray statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, 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.
statementsToDropPrimaryKeyConstraintsOnEntityGroups in interface EOSchemaSynchronizationentityGroups - 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToDropPrimaryKeySupportForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, 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.
statementsToDropPrimaryKeySupportForEntityGroups in interface EOSchemaSynchronizationentityGroups - 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToImplementForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, which is an array containing arrays of EOEntity objects with the same external name. The changes dictionary identifies changes to make to the
database schema. The options dictionary describes the aspects of the schema for which to create SQL statements.
statementsToImplementForeignKeyConstraintsOnEntityGroups in interface EOSchemaSynchronizationentityGroups - 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToImplementPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, 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.
statementsToImplementPrimaryKeyConstraintsOnEntityGroups in interface EOSchemaSynchronizationentityGroups - 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToImplementPrimaryKeySupportForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationentityGroups, 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.
statementsToImplementPrimaryKeySupportForEntityGroups in interface EOSchemaSynchronizationentityGroups - changes - options -
EOSchemaSynchronization
public NSArray statementsToInsertColumnForAttribute(EOAttribute attribute,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationattribute. The options dictionary describes the aspects of the schema for which to create SQL statements.
statementsToInsertColumnForAttribute in interface EOSchemaSynchronizationattribute - An EOAttribute for which to insert a database column.options - A dictionary describing the aspects of the schema for which to create SQL statements.
attribute.EOAttribute,
EOSchemaSynchronization
public NSArray statementsToModifyColumnNullRule(String columnName,
String tableName,
boolean allowsNull,
EOSchemaGenerationOptions options)
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.
statementsToModifyColumnNullRule in interface EOSchemaSynchronizationcolumnName - 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.
empty array by default.EOSchemaSynchronization
public NSArray statementsToRenameColumnNamed(String columnName,
String tableName,
String newName,
EOSchemaGenerationOptions options)
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.
statementsToRenameColumnNamed in interface EOSchemaSynchronizationcolumnName - 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.
empty array by default.
public NSArray statementsToRenameTableNamed(String oldTableName,
String newTableName,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationtableName to newName. options is a dictionary describing the aspects of the schema for which to create SQL statements.
statementsToRenameTableNamed in interface EOSchemaSynchronizationoldTableName - The name of a table to be renamed.newTableName - The new name for the specified table.options - A dictionary describing the aspects of the schema for which to create SQL statements.
public NSArray statementsToUpdateObjectStoreForEntityGroups(NSArray entityGroups,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
entityGroups according to the changes and SQL generation instructions in the changes and options dictionaries. entityGroups is an array of entity
groups, which are arrays of EOEntity objects that have the same external name. Inserts and deletes columns, and updates modified columns.
statementsToUpdateObjectStoreForEntityGroups in interface EOSchemaSynchronizationentityGroups - An array of entity groups, which are arrays of EOEntity objects that have 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.
entityGroups.EOSchemaSynchronization
public NSArray statementsToUpdateObjectStoreForModel(EOModel model,
EOSchemaSynchronizationModelChanges changes,
EOSchemaGenerationOptions options)
EOSchemaSynchronizationmodel. Prepares the statements to insert and delete new and deleted tables before invoking statementsToUpdateObjectStoreForEntityGroups for each modified table. 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.
statementsToUpdateObjectStoreForModel in interface EOSchemaSynchronizationmodel - The EOModel with which to sychnronize the database.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.
model.#statementsToUpdateObjectStoreForEntityGroups( NSArray model, NSDictionary changes, EOSchemaGenerationOptions options) ,
EOSchemaSynchronization
public EOSchemaTableDescription tableDescriptionForModel(String tableName,
EOModel eomodel)
EOSchemaSynchronization
tableDescriptionForModel in interface EOSchemaSynchronizationtableName - table name to describeeomodel - model to introscpect
public EOSchemaColumnDescription columnDescriptionForTableAndModel(String columnName,
String tableName,
EOModel eomodel)
EOSchemaSynchronization
columnDescriptionForTableAndModel in interface EOSchemaSynchronizationcolumnName - column name to describetableName - table name to describeeomodel - model to introscpect
public EOSchemaIndexDescription indexDescriptionForTableAndModel(String indexName,
String tableName,
EOModel eomodel)
EOSchemaSynchronization
indexDescriptionForTableAndModel in interface EOSchemaSynchronizationindexName - index name to describetableName - table name to describeeomodel - model to introscpect
public boolean supportsDirectColumnCoercion()
false. Can be overridden by subclasses to return true if the adaptor can change the type of an existing column in place.
supportsDirectColumnCoercion in interface EOSchemaSynchronizationtrue if the adaptor can change the type of an existing column in place.public boolean supportsDirectColumnDeletion()
false. Can be overridden by subclasses to return true if the adaptor can delete columns.
supportsDirectColumnDeletion in interface EOSchemaSynchronizationtrue if the adaptor can delete columns.public boolean supportsDirectColumnInsertion()
false. Can be overridden by subclasses to return true if the adaptor can add columns to a table.
supportsDirectColumnInsertion in interface EOSchemaSynchronizationtrue if the adaptor can add columns to a table.public boolean supportsDirectColumnRenaming()
false. Can be overridden by subclasses to return true if the adaptor can rename columns in a table.
supportsDirectColumnRenaming in interface EOSchemaSynchronizationtrue if the adaptor can rename columns in a table.public boolean supportsDirectColumnNullRuleModification()
false. Can be overridden by subclasses to return true if the adaptor can modify the null rule of an existing column in place.
supportsDirectColumnNullRuleModification in interface EOSchemaSynchronizationtrue if the adaptor can modify the nullrule of an existing column in place.public boolean supportsSchemaSynchronization()
false. Can be overridden by subclasses to return true if the adaptor can update the database schema to reflect changes in an EOModel.
supportsSchemaSynchronization in interface EOSchemaSynchronizationtrue if the adaptor can update the database schema.public boolean supportsTableDescriptionIntrospection()
false. Can be overridden by subclasses to return true if the adaptor can describe the database schema.
supportsTableDescriptionIntrospection in interface EOSchemaSynchronizationtrue if the adaptor can describe the database schema.
public EOSchemaSynchronizationColumnChanges objectStoreChangesFromAttributeToAttribute(EOAttribute schemaAttribute,
EOAttribute modelAttribute)
EOSchemaSynchronizationschemaAttribute with modelAttribute and returns a change dictionary of state that is different between the the two. The possible keys in the change dictionary are: ExternalTypeKeyAllowsNullKeyPrecisionKeyScaleKeyWidthKey
The values in the change dictionary are the corresponding values of schemaAttribute, that is, the values stored in the database.
objectStoreChangesFromAttributeToAttribute in interface EOSchemaSynchronizationschemaAttribute - An EOAttribute as represented in the database.modelAttribute - An EOAttribute as represented in the EOModel.
schemaAttribute and modelAttribute.protected NSArray indexDefinitionForEntity(EOEntity entity)
entity -
public NSArray createIndexStatementsForEntityGroups(NSArray entityGroups)
createIndexStatementsForEntityGroups in interface EOSchemaGenerationpublic NSArray createIndexStatementsForEntityGroup(NSArray entityGroup)
createIndexStatementsForEntityGroup in interface EOSchemaGeneration
protected NSArray createIndexExpressionsForEntity(EOEntity entity,
EOEntityIndex anIndex,
EOEntity masterEntity)
entity - anIndex - masterEntity -
protected String createIndexStatementForEntity(EOEntity entity,
String indexName,
String tableName,
NSArray attributeList)
entity - indexName - tableName - attributeList -
public NSArray dropIndexStatementsForEntityGroups(NSArray entityGroups)
dropIndexStatementsForEntityGroups in interface EOSchemaGenerationpublic NSArray dropIndexStatementsForEntityGroup(NSArray entityGroup)
dropIndexStatementsForEntityGroup in interface EOSchemaGeneration
protected NSArray dropIndexExpressionsForEntity(EOEntity entity,
EOEntityIndex anIndex,
EOEntity masterEntity)
entity - anIndex - masterEntity -
protected String dropIndexStatementForEntity(EOEntity entity,
String indexName,
String tableName)
entity - indexName - tableName -
|
Last updated June 2008 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||