|
WebObjects 5.1 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--com.webobjects.eoaccess.EOSynchronizationFactory
| Inner 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. |
| Inner classes inherited from class com.webobjects.eoaccess.EOSchemaSynchronization |
EOSchemaSynchronization.ColumnTypes |
| Fields inherited from interface com.webobjects.eoaccess.EOSchemaGeneration |
CreateDatabaseKey, CreatePrimaryKeySupportKey, CreateTablesKey, DropDatabaseKey, DropPrimaryKeySupportKey, DropTablesKey, ForeignKeyConstraintsKey, PrimaryKeyConstraintsKey |
| Fields inherited from interface com.webobjects.eoaccess.EOSchemaSynchronization |
AllowsNullKey, ColumnNameKey, ExternalNameKey, ExternalTypeKey, NameKey, PrecisionKey, RelationshipsKey, ScaleKey, SchemaSynchronizationForeignKeyConstraintsKey, SchemaSynchronizationPrimaryKeyConstraintsKey, SchemaSynchronizationPrimaryKeySupportKey, WidthKey |
| Constructor Summary | |
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. |
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. |
| 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:
addCreateClauseForAttributecolumnTypeStringForAttributeallowsNullClauseForConstraintcreateTableStatementsForEntityGroup 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)
relationship. Returns an empty array if any of
the following are true:
relationship spans models
(relationship's destination entity is in a
different model than its source entity).relationship is a to-many relationship.relationship is
not> a to-many relationship.Foreign key constraint statements are only created for to-one relationships whose inverse is a to-many relationship.
This method generates statements such as the following:
ALTER TABLE EMPLOYEE ADD CONSTRAINT TO_DEPARTMENT FOREIGN KEY
(DEPT_ID) REFERENCES DEPARTMENT(DEPT_ID)
If a subclass's database server's foreign key constraint
semantics are different, the subclass should override this method or
override the method
prepareConstraintStatementForRelationship.
foreignKeyConstraintStatementsForRelationship in interface EOSchemaGenerationrelationship - foreign key constraints has to be created for
this relationshipschemaCreationStatementsForEntities(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 EOSchemaSynchronizationcom.webobjects.eoaccess.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. 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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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 EOSchemaSynchronizationcom.webobjects.eoaccess.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. 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 Thu Jan 10 18:10:21 PST 2002. | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||