|
WebObjects 5.4.2 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory com.webobjects.jdbcadaptor.FrontbasePlugIn.FrontbaseSynchronizationFactory
public static class FrontbasePlugIn.FrontbaseSynchronizationFactory
Nested Class Summary | |
---|---|
static class |
FrontbasePlugIn.FrontbaseSynchronizationFactory.FrontbaseColumnDescription
|
static class |
FrontbasePlugIn.FrontbaseSynchronizationFactory.FrontbaseIndexDescription
|
static class |
FrontbasePlugIn.FrontbaseSynchronizationFactory.FrontbaseTableDescription
|
Nested classes/interfaces inherited from class com.webobjects.eoaccess.synchronization.EOSchemaSynchronizationFactory |
---|
EOSchemaSynchronizationFactory.Delegate |
Nested classes/interfaces inherited from interface com.webobjects.eoaccess.synchronization.EOSchemaSynchronization |
---|
EOSchemaSynchronization.ColumnTypes |
Constructor Summary | |
---|---|
FrontbasePlugIn.FrontbaseSynchronizationFactory(EOAdaptor eoadaptor)
|
Method Summary | |
---|---|
StringBuffer |
addCreateClauseForAttribute(EOAttribute eoattribute)
|
static boolean |
boolValueForKeyDefault(NSDictionary nsdictionary,
String s,
boolean flag)
|
String |
columnTypeStringForAttribute(EOAttribute eoattribute)
|
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 |
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 . |
NSDictionary |
fetchTableDescriptionForModel(String tableName,
EOModel eomodel)
|
NSArray |
foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
Returns an array of EOSQLExpression objects that define the SQL statements necessary to create foreign key constraints for relationship . |
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 |
primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
The default implementation returns null . |
NSArray |
schemaCreationStatementsForEntities(NSArray entities,
EOSchemaGenerationOptions options)
Returns an array of EOSQLExpressions suitable to create the schema based on options for the EOEntity objects in allEntities . |
NSArray |
statementsToConvertColumnType(String columnName,
String tableName,
EOSchemaSynchronization.ColumnTypes type,
EOSchemaSynchronization.ColumnTypes newType,
EOSchemaGenerationOptions options)
The default implementation returns null . |
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 |
statementsToModifyColumnNullRule(String columnName,
String tableName,
boolean allowsNull,
EOSchemaGenerationOptions options)
Returns null by default. |
NSArray |
statementsToRenameColumnNamed(String columnName,
String tableName,
String newName,
EOSchemaGenerationOptions options)
The default implementation returns null . |
protected String |
statementToCreateDataTypeClause(EOSchemaSynchronization.ColumnTypes columntypes)
|
boolean |
supportsDirectColumnCoercion()
The default implementation returns false . |
boolean |
supportsDirectColumnDeletion()
The default implementation returns false . |
boolean |
supportsDirectColumnInsertion()
The default implementation returns false . |
boolean |
supportsDirectColumnNullRuleModification()
The default implementation returns false . |
boolean |
supportsDirectColumnRenaming()
The default implementation returns false . |
boolean |
supportsSchemaSynchronization()
The default implementation returns false . |
boolean |
supportsTableDescriptionIntrospection()
The default implementation returns false . |
EOSchemaTableDescription |
tableDescriptionForModel(String tableName,
EOModel eomodel)
Return a Table Description object that describe the database schema. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FrontbasePlugIn.FrontbaseSynchronizationFactory(EOAdaptor eoadaptor)
Method Detail |
---|
public boolean supportsSchemaSynchronization()
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
supportsSchemaSynchronization
in class EOSchemaSynchronizationFactory
true
if the adaptor can update the database schema.public static boolean boolValueForKeyDefault(NSDictionary nsdictionary, String s, boolean flag)
public NSArray schemaCreationStatementsForEntities(NSArray entities, EOSchemaGenerationOptions options)
EOSchemaSynchronizationFactory
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:
CreateTablesKey
DropTablesKey
CreatePrimaryKeySupportKey
DropPrimaryKeySupportKey
PrimaryKeyConstraintsKey
ForeignKeyConstraintsKey
CreateDatabaseKey
DropDatabaseKey
Used in conjunction with appendExpressionToScript
and schemaCreationScriptForEntities
to build up the SQL script to generate the specified schema for allEntities
.
schemaCreationStatementsForEntities
in interface EOSchemaGeneration
schemaCreationStatementsForEntities
in class EOSchemaSynchronizationFactory
entities
- An array of EOEntity objects.options
- A dictionary describing the schema options for which to generate SQL statements.
allEntities
with the given options
.#schemaCreationScriptForEntities( NSArray allEntities, NSDictionary options)
,
EOSchemaSynchronizationFactory.appendExpressionToScript( EOSQLExpression expression, StringBuffer script)
public NSArray dropPrimaryKeySupportStatementsForEntityGroups(NSArray entityGroups)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
dropPrimaryKeySupportStatementsForEntityGroups
in class EOSchemaSynchronizationFactory
entityGroups
- An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups
, or an empty array, or an array containing a string message that the option is not supported.EOSchemaSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup)
,
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)
,
EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity)
,
EOEntity.externalName()
public NSArray dropDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
dropDatabaseStatementsForConnectionDictionary
in class EOSchemaSynchronizationFactory
connectionDictionary
- A dictionary of information needed by the adaptor to connect to the database server.administrativeConnectionDictionary
- A dictionary of administrative login information for the database server.
null
by default.EOSchemaSynchronizationFactory.createDatabaseStatementsForConnectionDictionary( NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
public NSArray createDatabaseStatementsForConnectionDictionary(NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
createDatabaseStatementsForConnectionDictionary
in class EOSchemaSynchronizationFactory
connectionDictionary
- A dictionary of information needed by the adaptor to connect to the database server.administrativeConnectionDictionary
- A dictionary of administrative login information for the database server.
null
by default.EOSchemaSynchronizationFactory.dropDatabaseStatementsForConnectionDictionary( NSDictionary connectionDictionary, NSDictionary administrativeConnectionDictionary)
public NSArray dropTableStatementsForEntityGroup(NSArray entityGroup)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
dropTableStatementsForEntityGroup
in class EOSchemaSynchronizationFactory
entityGroup
- An array of EOEntity objects that have the same external name.
entityGroup
, or an empty array.EOSchemaSynchronizationFactory.createTableStatementsForEntityGroup( NSArray entityGroup)
,
EOEntity.externalName()
public NSArray primaryKeySupportStatementsForEntityGroup(NSArray entityGroup)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
primaryKeySupportStatementsForEntityGroup
in class EOSchemaSynchronizationFactory
entityGroup
- An array of EOEntity objects that have the same external name.
null
by default.EOSchemaSynchronizationFactory.dropPrimaryKeySupportStatementsForEntityGroup( NSArray entityGroup)
,
EOAdaptorChannel.primaryKeyForNewRowWithEntity( EOEntity entity)
,
EOEntity.externalName()
public NSArray foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
EOSchemaGeneration
relationship
. Returns an empty array if unable to generate foreign key constraints for relationship
foreignKeyConstraintStatementsForRelationship
in interface EOSchemaGeneration
foreignKeyConstraintStatementsForRelationship
in class EOSchemaSynchronizationFactory
relationship
- An EORelationship.
relationship
, or an empty array.EOSQLExpression
,
EOSchemaSynchronizationFactory.foreignKeyConstraintStatementsForRelationship(EORelationship relationship)
,
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)
public NSArray createTableStatementsForEntityGroups(NSArray entityGroups)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
createTableStatementsForEntityGroups
in class EOSchemaSynchronizationFactory
entityGroups
- An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups
.EOSchemaSynchronizationFactory.createTableStatementsForEntityGroup( NSArray entityGroup)
,
#schemaCreationStatementsForEntities( NSArray allEntities, NSDictionary options)
,
EOEntity.externalName()
public NSArray createTableStatementsForEntityGroup(NSArray entityGroup)
EOSchemaSynchronizationFactory
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:
addCreateClauseForAttribute
columnTypeStringForAttribute
allowsNullClauseForConstraint
createTableStatementsForEntityGroup
in interface EOSchemaGeneration
createTableStatementsForEntityGroup
in class EOSchemaSynchronizationFactory
entityGroup
- An array of EOEntity objects that have the same external name.
entityGroup
, or an empty array.EOSchemaSynchronizationFactory.dropTableStatementsForEntityGroup(NSArray entityGroup)
,
EOSchemaSynchronizationFactory.dropTableStatementsForEntityGroup(NSArray entityGroup)
,
EOSQLExpression.addCreateClauseForAttribute( EOAttribute anEOAttribute)
,
EOSQLExpression.columnTypeStringForAttribute( EOAttribute anEOAttribute)
,
(boolean aBoolean)
,
EOEntity.externalName()
public StringBuffer addCreateClauseForAttribute(EOAttribute eoattribute)
public String columnTypeStringForAttribute(EOAttribute eoattribute)
public NSArray primaryKeyConstraintStatementsForEntityGroups(NSArray entityGroups)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
primaryKeyConstraintStatementsForEntityGroups
in class EOSchemaSynchronizationFactory
entityGroups
- An NSArray of entity groups, which are arrays of EOEntity objects that have the same external name.
entityGroups
, or an empty array.EOSchemaSynchronizationFactory.primaryKeyConstraintStatementsForEntityGroup( NSArray entityGroup)
,
EOEntity.externalName()
public NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup)
EOSchemaSynchronizationFactory
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 EOSchemaGeneration
primaryKeyConstraintStatementsForEntityGroup
in class EOSchemaSynchronizationFactory
entityGroup
- An array of EOEntity objects that have the same external name.
entityGroup
, or an empty array.EOAttribute.columnName()
,
EOEntity.externalName()
,
EOEntity.primaryKeyAttributes()
public boolean supportsTableDescriptionIntrospection()
EOSchemaSynchronizationFactory
false
. Can be overridden by subclasses to return true
if the adaptor can describe the database schema.
supportsTableDescriptionIntrospection
in interface EOSchemaSynchronization
supportsTableDescriptionIntrospection
in class EOSchemaSynchronizationFactory
true
if the adaptor can describe the database schema.public EOSchemaTableDescription tableDescriptionForModel(String tableName, EOModel eomodel)
EOSchemaSynchronization
tableDescriptionForModel
in interface EOSchemaSynchronization
tableDescriptionForModel
in class EOSchemaSynchronizationFactory
tableName
- table name to describeeomodel
- model to introscpect
public NSDictionary fetchTableDescriptionForModel(String tableName, EOModel eomodel)
public NSArray statementsToDropPrimaryKeyConstraintsOnEntityGroups(NSArray entityGroups, EOSchemaSynchronizationModelChanges changes, EOSchemaGenerationOptions options)
EOSchemaSynchronization
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.
statementsToDropPrimaryKeyConstraintsOnEntityGroups
in interface EOSchemaSynchronization
statementsToDropPrimaryKeyConstraintsOnEntityGroups
in class EOSchemaSynchronizationFactory
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
public boolean supportsDirectColumnCoercion()
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
supportsDirectColumnCoercion
in class EOSchemaSynchronizationFactory
true
if the adaptor can change the type of an existing column in place.public boolean supportsDirectColumnDeletion()
EOSchemaSynchronizationFactory
false
. Can be overridden by subclasses to return true
if the adaptor can delete columns.
supportsDirectColumnDeletion
in interface EOSchemaSynchronization
supportsDirectColumnDeletion
in class EOSchemaSynchronizationFactory
true
if the adaptor can delete columns.public boolean supportsDirectColumnInsertion()
EOSchemaSynchronizationFactory
false
. Can be overridden by subclasses to return true
if the adaptor can add columns to a table.
supportsDirectColumnInsertion
in interface EOSchemaSynchronization
supportsDirectColumnInsertion
in class EOSchemaSynchronizationFactory
true
if the adaptor can add columns to a table.public boolean supportsDirectColumnRenaming()
EOSchemaSynchronizationFactory
false
. Can be overridden by subclasses to return true
if the adaptor can rename columns in a table.
supportsDirectColumnRenaming
in interface EOSchemaSynchronization
supportsDirectColumnRenaming
in class EOSchemaSynchronizationFactory
true
if the adaptor can rename columns in a table.public boolean supportsDirectColumnNullRuleModification()
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
supportsDirectColumnNullRuleModification
in class EOSchemaSynchronizationFactory
true
if the adaptor can modify the null
rule of an existing column in place.public NSArray statementsToModifyColumnNullRule(String columnName, String tableName, boolean allowsNull, EOSchemaGenerationOptions options)
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
statementsToModifyColumnNullRule
in class EOSchemaSynchronizationFactory
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.
empty array
by default.EOSchemaSynchronization
public NSArray statementsToRenameColumnNamed(String columnName, String tableName, String newName, EOSchemaGenerationOptions options)
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
statementsToRenameColumnNamed
in class EOSchemaSynchronizationFactory
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.
empty array
by default.public NSArray statementsToConvertColumnType(String columnName, String tableName, EOSchemaSynchronization.ColumnTypes type, EOSchemaSynchronization.ColumnTypes newType, EOSchemaGenerationOptions options)
EOSchemaSynchronizationFactory
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 EOSchemaSynchronization
statementsToConvertColumnType
in class EOSchemaSynchronizationFactory
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.
empty array
by default.protected String statementToCreateDataTypeClause(EOSchemaSynchronization.ColumnTypes columntypes)
|
Last updated June 2008 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |