| 
WebObjects 5.2.2 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--com.webobjects.eoaccess.EOSynchronizationFactory
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 | 
EOSynchronizationFactory.Delegate
The Delegate interface for EOSynchronizationFactory is restricted to use by the EOModeler application and should not be implemented by others.  | 
| Nested classes inherited from class com.webobjects.eoaccess.EOSchemaSynchronization | 
EOSchemaSynchronization.ColumnTypes | 
| Field Summary | 
| 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 | |
EOSynchronizationFactory(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. | 
 NSArray | 
createDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary,
                                                NSDictionary administrativeConnectionDictionary)
The default implementation returns null. | 
 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. | 
 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. | 
 boolean | 
isCaseSensitive()
The default implementation returns false. | 
 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. | 
 NSArray | 
logicalErrorsInChangeDictionaryForModelOptions(NSDictionary changes,
                                               EOModel model,
                                               NSDictionary 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. | 
 NSDictionary | 
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,
                         NSDictionary 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,
                                NSDictionary 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,
                                    NSDictionary options)
Returns an array of EOSQLExpressions suitable to create the schema based on options for the EOEntity objects in 
 allEntities. | 
 EOSynchronizationFactory.Delegate | 
schemaSynchronizationDelegate()
Returns the receiver's delegate.  | 
 void | 
setSchemaSynchronizationDelegate(EOSynchronizationFactory.Delegate delegate)
Sets the receiver's delegate to delegate. | 
 NSArray | 
statementsToConvertColumnType(String columnName,
                              String tableName,
                              EOSchemaSynchronization.ColumnTypes type,
                              EOSchemaSynchronization.ColumnTypes newType,
                              NSDictionary options)
The default implementation returns null. | 
 NSArray | 
statementsToCopyTableNamed(String tableName,
                           NSArray entityGroup,
                           NSDictionary changes,
                           NSDictionary 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,
                              NSDictionary options)
The default implementation returns null. | 
 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 | 
statementsToDropPrimaryKeySupportForEntityGroups(NSArray entityGroups,
                                                 NSDictionary changes,
                                                 NSDictionary 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,
                                                         NSDictionary changes,
                                                         NSDictionary 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,
                                                         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 | 
statementsToImplementPrimaryKeySupportForEntityGroups(NSArray entityGroups,
                                                      NSDictionary changes,
                                                      NSDictionary 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,
                                     NSDictionary 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,
                                 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. | 
 NSArray | 
statementsToUpdateObjectStoreForEntityGroups(NSArray entityGroups,
                                             NSDictionary changes,
                                             NSDictionary 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,
                                      NSDictionary changes,
                                      NSDictionary 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. | 
 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 EOSynchronizationFactory(EOAdaptor adaptor)
adaptor to communicate with an external
 database.
adaptor - An EOAdaptor to associate with the new 
                EOSynchrnizationFactory.| Method Detail | 
public EOAdaptor adaptor()
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.createTableStatementsForEntityGroup(
                   NSArray entityGroup)
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.dropDatabaseStatementsForConnectionDictionary(
      NSDictionary connectionDictionary, 
      NSDictionary administrativeConnectionDictionary)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.dropTableStatementsForEntityGroup(NSArray
                    entityGroup), 
dropTableStatementsForEntityGroup(NSArray
                    entityGroup), 
EOSQLExpression.addCreateClauseForAttribute(
                    EOAttribute anEOAttribute), 
EOSQLExpression.columnTypeStringForAttribute(
                    EOAttribute anEOAttribute), 
(boolean aBoolean), 
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.createTableStatementsForEntityGroup(
                      NSArray entityGroup), 
schemaCreationStatementsForEntities(
                      NSArray allEntities, NSDictionary options), 
EOEntity.externalName()
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.createDatabaseStatementsForConnectionDictionary(
      NSDictionary connectionDictionary, 
      NSDictionary administrativeConnectionDictionary)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.primaryKeySupportStatementsForEntityGroup(
                    NSArray entityGroup), 
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.dropPrimaryKeySupportStatementsForEntityGroup(
                      NSArray entityGroup), 
schemaCreationStatementsForEntities(
                      NSArray allEntities, NSDictionary options), 
EOAdaptorChannel.primaryKeyForNewRowWithEntity(
                      EOEntity entity), 
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.createTableStatementsForEntityGroup(
                      NSArray entityGroup), 
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.dropTableStatementsForEntityGroup(
                      NSArray entityGroup), 
schemaCreationStatementsForEntities(
                      NSArray allEntities, NSDictionary options), 
EOEntity.externalName()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, 
foreignKeyConstraintStatementsForRelationship(EORelationship relationship), 
EOSchemaGeneration.schemaCreationStatementsForEntities(
                      NSArray allEntities, NSDictionary options)public boolean isCaseSensitive()
false.
false by default.
public boolean isColumnTypeEquivalentToColumnType(EOSchemaSynchronization.ColumnTypes candidate,
                                                  EOSchemaSynchronization.ColumnTypes columnType,
                                                  NSDictionary 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(NSDictionary changes,
                                                              EOModel model,
                                                              NSDictionary 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.objectStoreChangesFromAttributeToAttribute(
                EOAttribute schemaAttribute, 
                EOAttribute modelAttribute)
public NSDictionary 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:
 ExternalTypeKeyAllowsNullKeyPrecisionKeyScaleKeyWidthKeyThe 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.
public String phraseCastingColumnNamed(String columnName,
                                       EOSchemaSynchronization.ColumnTypes type,
                                       EOSchemaSynchronization.ColumnTypes castType,
                                       NSDictionary 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 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 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.primaryKeyConstraintStatementsForEntityGroup(
                      NSArray entityGroup), 
EOEntity.externalName()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.EOEntitypublic 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.dropPrimaryKeySupportStatementsForEntityGroup(
                    NSArray entityGroup), 
EOAdaptorChannel.primaryKeyForNewRowWithEntity(
                    EOEntity entity), 
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.primaryKeySupportStatementsForEntityGroup(
                      NSArray entityGroup), 
EOAdaptorChannel.primaryKeyForNewRowWithEntity(
                      EOEntity entity), 
EOEntity.externalName()
public String schemaCreationScriptForEntities(NSArray allEntities,
                                              NSDictionary 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:
 CreateTablesKeyDropTablesKeyCreatePrimaryKeySupportKeyDropPrimaryKeySupportKeyPrimaryKeyConstraintsKeyForeignKeyConstraintsKeyCreateDatabaseKeyDropDatabaseKeyThis 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.appendExpressionToScript(
                    EOSQLExpression expression, StringBuffer script), 
schemaCreationStatementsForEntities(
                    NSArray allEntities, NSDictionary options)
public NSArray schemaCreationStatementsForEntities(NSArray allEntities,
                                                   NSDictionary 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:
CreateTablesKeyDropTablesKeyCreatePrimaryKeySupportKeyDropPrimaryKeySupportKeyPrimaryKeyConstraintsKeyForeignKeyConstraintsKeyCreateDatabaseKeyDropDatabaseKeyUsed 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), 
appendExpressionToScript(
                    EOSQLExpression expression, StringBuffer script)public EOSynchronizationFactory.Delegate schemaSynchronizationDelegate()
public void setSchemaSynchronizationDelegate(EOSynchronizationFactory.Delegate delegate)
delegate.
delegate - The object to set as the receiver's delegate.
public NSArray statementsToConvertColumnType(String columnName,
                                             String tableName,
                                             EOSchemaSynchronization.ColumnTypes type,
                                             EOSchemaSynchronization.ColumnTypes newType,
                                             NSDictionary 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.
null by default.
public NSArray statementsToCopyTableNamed(String tableName,
                                          NSArray entityGroup,
                                          NSDictionary changes,
                                          NSDictionary 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 EOSchemaSynchronizationtableName - 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 statementsToDeleteColumnNamed(String columnName,
                                             String tableName,
                                             NSDictionary 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.
null by default.
public NSArray statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups,
                                                                   NSDictionary changes,
                                                                   NSDictionary 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 statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups,
                                                                   NSDictionary changes,
                                                                   NSDictionary 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,
                                                                NSDictionary changes,
                                                                NSDictionary 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,
                                                                        NSDictionary changes,
                                                                        NSDictionary 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,
                                                                        NSDictionary changes,
                                                                        NSDictionary 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,
                                                                     NSDictionary changes,
                                                                     NSDictionary 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 - 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 statementsToInsertColumnForAttribute(EOAttribute attribute,
                                                    NSDictionary 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,
                                                NSDictionary 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.
null by default.EOSchemaSynchronization
public NSArray statementsToRenameColumnNamed(String columnName,
                                             String tableName,
                                             String newName,
                                             NSDictionary 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.
null by default.
public NSArray statementsToRenameTableNamed(String tableName,
                                            String newName,
                                            NSDictionary options)
EOSchemaSynchronizationtableName to 
 newName. options is a dictionary 
 describing the aspects of the schema for which to create SQL 
 statements.
statementsToRenameTableNamed in interface EOSchemaSynchronizationtableName - 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.
public NSArray statementsToUpdateObjectStoreForEntityGroups(NSArray entityGroups,
                                                            NSDictionary changes,
                                                            NSDictionary 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,
                                                     NSDictionary changes,
                                                     NSDictionary 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.EOSchemaSynchronization.statementsToUpdateObjectStoreForEntityGroups(
                NSArray model, NSDictionary changes, 
                NSDictionary options), 
EOSchemaSynchronizationpublic 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 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 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 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 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.
  | 
Last updated Mon Oct 13 15:42:52 PDT 2003. | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||