|
WebObjects 5.4.2 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface EOSchemaSynchronization
This interface has been introduced to define API to synchronize a database schema with a corresponding EOModel. None of the API is new in WebObjects 5.x. Rather, it was moved to EOSchemaSynchronization from EOSQLExpression. The API is essentially the same as in WebObjects 4.5.x except that methods which were formerly static methods of EOSQLExpression in WebObjects 4.5.x are now are instance methods of EOSchemaSynchronization.
An implementation of the EOSchemaSynchronization interface is provided by EOSynchronizationFactory, a new class introduced in WebObjects 5.0.
EOSchemaSynchronization defines a number of constants for use as keys in change dictionaries or options dictionaries. A change dictionary contains information about tables to insert, tables to delete, tables to update, and information about how to update them.
The schema synchronization API is typically used only by the EOModeler application, not by user application code.
EOSQLExpression
,
EOSchemaGeneration
,
EOSchemaSynchronizationFactory
Nested Class Summary | |
---|---|
static interface |
EOSchemaSynchronization.ColumnTypes
The ColumnTypes interface is only used when implementing schema synchronization API for a custom adaptor. |
Method Summary | |
---|---|
EOSchemaColumnDescription |
columnDescriptionForTableAndModel(String columnName,
String tableName,
EOModel model)
Return a Column Description object that describe the database schema. |
EOSchemaIndexDescription |
indexDescriptionForTableAndModel(String indexName,
String tableName,
EOModel model)
Return an Index Description object that describe the database schema. |
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. |
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)
Returns an SQL string to cast the values in the column identified by columnName from the current type to a new type specified by castType . |
NSArray |
statementsToConvertColumnType(String columnName,
String tableName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes newType,
EOSchemaGenerationOptions options)
Returns 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 . |
NSArray |
statementsToCopyTableNamed(String tableName,
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)
Returns an array of EOSQLExpressions to delete the column indentifed by columnName from the table identified by tableName . |
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 an array of EOSQLExpressions to modify in place the column identified by columnName in the table identified by tableName to either allow or not allow NULL values as specified by allowsNull . |
NSArray |
statementsToRenameColumnNamed(String columnName,
String tableName,
String newName,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions to rename in place of the the column indentifed by tableName to newName . |
NSArray |
statementsToRenameTableNamed(String tableName,
String newName,
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 model 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()
Returns true if the adaptor can change the type of an existing column in place, false otherwise. |
boolean |
supportsDirectColumnDeletion()
Returns true if the adaptor can delete columns, false otherwise. |
boolean |
supportsDirectColumnInsertion()
Returns true if the adaptor can add columns to a table, false otherwise. |
boolean |
supportsDirectColumnNullRuleModification()
Returns true if the adaptor can modify the null rule of an existing column in place, false otherwise. |
boolean |
supportsDirectColumnRenaming()
Returns true if the adaptor can rename table columns, false otherwise. |
boolean |
supportsSchemaSynchronization()
Returns true if the adaptor can update the database schema to reflect changes in an EOModel, false otherwise. |
boolean |
supportsTableDescriptionIntrospection()
Returns true if the adaptor can describe the database schema, false otherwise. |
EOSchemaTableDescription |
tableDescriptionForModel(String tableName,
EOModel model)
Return a Table Description object that describe the database schema. |
Method Detail |
---|
EOSchemaGenerationOptions newOptions()
EOSchemaSynchronizationModelChanges newChanges()
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.
candidate
- A column to potentially copy.columnType
- A column into which to copy candidate
.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
true
if the specified attributes of candidate
are identical to the corresponding attributes of columnType
.String phraseCastingColumnNamed(String columnName, EOSchemaSynchronization.ColumnTypes type, EOSchemaSynchronization.ColumnTypes castType, EOSchemaGenerationOptions options)
columnName
from the current type
to a new type specified by castType
. This method is used when the adaptor doesn't support in-place column type coercion, and the table has to be
recreated. To move data from the old table to the new table, sometimes a conversion statement is needed (for example, to convert strings in a VARCHAR column to numbers). options
is a dictionary describing the aspects of the schema for which to create SQL statements.
columnName
- The name of a database column.type
- The type of the values in the specified column.castType
- The new type to which to cast the values in the specified column.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
castType
NSArray statementsToCopyTableNamed(String tableName, NSArray entityGroup, EOSchemaSynchronizationTableChanges changes, EOSchemaGenerationOptions options)
entityGroup
, 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.
tableName
- 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
NSArray statementsToInsertColumnForAttribute(EOAttribute attribute, EOSchemaGenerationOptions options)
attribute
. The options
dictionary describes the aspects of the schema for which to create SQL statements.
attribute
- 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
NSArray statementsToModifyColumnNullRule(String columnName, String tableName, boolean allowsNull, EOSchemaGenerationOptions options)
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.
columnName
- The name of a column to be modified.tableName
- The name of the table containing the specified column.allowsNull
- A boolean value to determine whether to allow or not allow NULL values in the specified column.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
EOSchemaSynchronization
NSArray statementsToConvertColumnType(String columnName, String tableName, EOSchemaSynchronization.ColumnTypes type, EOSchemaSynchronization.ColumnTypes newType, EOSchemaGenerationOptions options)
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.
columnName
- 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.
NSArray statementsToDeleteColumnNamed(String columnName, String tableName, EOSchemaGenerationOptions options)
columnName
from the table identified by tableName
. options
is a dictionary describing the aspects of the schema for which to create SQL statements.
columnName
- 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.
NSArray statementsToRenameColumnNamed(String columnName, String tableName, String newName, EOSchemaGenerationOptions options)
tableName
to newName
. options
is a dictionary describing the aspects of the schema for which to create SQL
statements.
columnName
- The name of a column to be renamed.tableName
- The name of the table containing the specified column.newName
- The new name for the specified column.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
NSArray statementsToDropForeignKeyConstraintsOnEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, which is an array containing arrays of EOEntity objects with the same external name. The changes
dictionary identifies the changes to make to the
database schema. The options
dictionary describes the aspects of the schema for which to create SQL statements.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, which is an array containing arrays of EOEntity objects with the same external name. The changes
dictionary identifies the changes to make to the
database schema. The options
dictionary describes the aspects of the schema for which to create SQL statements.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToDropPrimaryKeySupportForEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, which is an array containing arrays of EOEntity objects with the same external name. The changes
dictionary identifies the changes to make to the
database schema. The options
dictionary describes the aspects of the schema for which to create SQL statements.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToImplementForeignKeyConstraintsOnEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, 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.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToImplementPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, which is an array containing arrays of EOEntity objects with the same external name. The changes
dictionary identifies the changes to make to
the database schema. The options
dictionary describes the aspects of the schema for which to create SQL statements.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToImplementPrimaryKeySupportForEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
entityGroups
, which is an array containing arrays of EOEntity objects with the same external name. The changes
dictionary identifies the changes to make to the
database schema. The options
dictionary describes the aspects of the schema for which to create SQL statements.
entityGroups
- An array containing arrays of EOEntity objects with the same external name.changes
- A dictionary of changes to make to the database schema.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
entityGroups
.EOSchemaSynchronization
NSArray statementsToRenameTableNamed(String tableName, String newName, EOSchemaGenerationOptions options)
tableName
to newName
. options
is a dictionary describing the aspects of the schema for which to create SQL statements.
tableName
- The name of a table to be renamed.newName
- The new name for the specified table.options
- A dictionary describing the aspects of the schema for which to create SQL statements.
NSArray statementsToUpdateObjectStoreForModel(EOModel model, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
model
. 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.
model
- 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
NSArray statementsToUpdateObjectStoreForEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
model
according to the changes and SQL generation instructions in the changes
and options
dictionaries. model
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.
entityGroups
- 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.
model
.EOSchemaSynchronization
EOSchemaTableDescription tableDescriptionForModel(String tableName, EOModel model)
tableName
- table name to describemodel
- model to introscpect
EOSchemaColumnDescription columnDescriptionForTableAndModel(String columnName, String tableName, EOModel model)
columnName
- column name to describetableName
- table name to describemodel
- model to introscpect
EOSchemaIndexDescription indexDescriptionForTableAndModel(String indexName, String tableName, EOModel model)
indexName
- index name to describetableName
- table name to describemodel
- model to introscpect
boolean supportsDirectColumnNullRuleModification()
true
if the adaptor can modify the null
rule of an existing column in place, false
otherwise.
true
if the adaptor can modify the null
rule of an existing column in placeboolean supportsDirectColumnCoercion()
true
if the adaptor can change the type of an existing column in place, false
otherwise.
true
if the adaptor can change the type of an existing column in place.boolean supportsDirectColumnDeletion()
true
if the adaptor can delete columns, false
otherwise.
true
if the adaptor can delete columns.boolean supportsDirectColumnInsertion()
true
if the adaptor can add columns to a table, false
otherwise.
true
if the adaptor can add columns to a table.boolean supportsDirectColumnRenaming()
true
if the adaptor can rename table columns, false
otherwise.
true
if the adaptor can rename table columns.boolean supportsSchemaSynchronization()
true
if the adaptor can update the database schema to reflect changes in an EOModel, false
otherwise.
true
if the adaptor can update the database schema.boolean supportsTableDescriptionIntrospection()
true
if the adaptor can describe the database schema, false
otherwise.
true
if the adaptor can describe the database schema.EOSchemaSynchronizationColumnChanges objectStoreChangesFromAttributeToAttribute(EOAttribute schemaAttribute, EOAttribute modelAttribute)
schemaAttribute
with modelAttribute
and returns a change dictionary of state that is different between the the two. The possible keys in the change dictionary are: ExternalTypeKey
AllowsNullKey
PrecisionKey
ScaleKey
WidthKey
The values in the change dictionary are the corresponding values of schemaAttribute
, that is, the values stored in the database.
schemaAttribute
- An EOAttribute as represented in the database.modelAttribute
- An EOAttribute as represented in the EOModel.
schemaAttribute
and modelAttribute
.
|
Last updated June 2008 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |