Class TableDefinition
- java.lang.Object
-
- org.eclipse.persistence.tools.schemaframework.DatabaseObjectDefinition
-
- org.eclipse.persistence.tools.schemaframework.TableDefinition
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
TypeTableDefinition
public class TableDefinition extends DatabaseObjectDefinition
Purpose: Allow a generic way of creating tables on the different platforms.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
creationPrefix
protected java.lang.String
creationSuffix
protected java.util.List<FieldDefinition>
fields
protected java.util.Map<java.lang.String,ForeignKeyConstraint>
foreignKeyMap
protected boolean
hasUserDefinedForeignKeyConstraints
protected java.util.List<IndexDefinition>
indexes
protected org.eclipse.persistence.internal.helper.DatabaseTable
table
protected java.util.List<UniqueKeyConstraint>
uniqueKeys
-
Fields inherited from class org.eclipse.persistence.tools.schemaframework.DatabaseObjectDefinition
name, qualifier
-
-
Constructor Summary
Constructors Constructor Description TableDefinition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used.void
addField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table.void
addField(java.lang.String fieldName, java.lang.Class type, int fieldSize, int fieldSubSize)
PUBLIC: Add the field to the table.void
addField(java.lang.String fieldName, java.lang.String typeName)
PUBLIC: Add the field to the type to a nested type.void
addField(FieldDefinition field)
PUBLIC: Add the field to the table.void
addFieldOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field)
INTERNAL: Execute the SQL alter table to add the field to the table.void
addForeignKeyConstraint(java.lang.String name, java.lang.String sourceField, java.lang.String targetField, java.lang.String targetTable)
PUBLIC: Add a foreign key constraint to the table.void
addForeignKeyConstraint(ForeignKeyConstraint foreignKey)
PUBLIC: Add a foreign key constraint to the table.void
addIdentityField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used.void
addIdentityField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table, default sizes are used.void
addIndex(IndexDefinition index)
PUBLIC: Add an index to the table.void
addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used.void
addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table, default sizes are used.void
addUniqueKeyConstraint(java.lang.String name, java.lang.String sourceField)
PUBLIC: Add a unique key constraint to the table.void
addUniqueKeyConstraint(java.lang.String name, java.lang.String[] sourceFields)
PUBLIC: Add a unique key constraint to the table.void
addUniqueKeyConstraint(UniqueKeyConstraint uniqueKey)
PUBLIC: Add a unique key constraint to the table.java.io.Writer
buildAddFieldWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field, java.io.Writer writer)
INTERNAL: Return the alter table statement to add a field to the table.java.io.Writer
buildConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer)
INTERNAL: Return the alter table statement to add the constraints.java.io.Writer
buildConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer)
INTERNAL: Return the alter table statement to drop the constraints.java.io.Writer
buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Return the create table statement.protected java.io.Writer
buildDatabaseSchemaCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer, java.util.Set<java.lang.String> createdDatabaseSchemas)
INTERNAL: Build the create schema DDL.protected java.io.Writer
buildDatabaseSchemaDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Build the drop schema DDL.java.io.Writer
buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Return the drop table statement.protected void
buildFieldTypes(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Build the foreign key constraints.protected ForeignKeyConstraint
buildForeignKeyConstraint(java.util.List<java.lang.String> fkFieldNames, java.util.List<java.lang.String> pkFieldNames, TableDefinition targetTable, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Build a foreign key constraint.protected ForeignKeyConstraint
buildForeignKeyConstraint(FieldDefinition field, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Build a foreign key constraint using FieldDefinition.getForeignKeyFieldName().protected java.lang.String
buildForeignKeyConstraintName(java.lang.String tableName, java.lang.String fieldName, int maximumNameLength, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Return foreign key constraint name built from the table and field name with the specified maximum length.IndexDefinition
buildIndex(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.util.List<java.lang.String> columnNames, boolean isUniqueSetOnField)
INTERNAL: Return the index creation statement.java.io.Writer
buildIndexDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.io.Writer writer, boolean isUniqueSetOnField)
INTERNAL: Return the index drop statement.protected java.lang.String
buildIndexName(java.lang.String tableName, java.lang.String key, java.lang.String indexPrefix, int maximumNameLength, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Return key constraint name built from the table and key name with the specified maximum length and index prefix.java.io.Writer
buildUniqueConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer)
INTERNAL: Return the alter table statement to add the constraints.java.io.Writer
buildUniqueConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer)
INTERNAL: Return the alter table statement to drop the constraints.protected UniqueKeyConstraint
buildUniqueKeyConstraint(java.lang.String name, java.util.List<java.lang.String> fieldNames, int serialNumber, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
protected java.lang.String
buildUniqueKeyConstraintName(java.lang.String tableName, int serialNumber, int maximumNameLength)
Return unique key constraint name built from the table name and sequence number with the specified maximum length.java.io.Writer
buildVPDCreationFunctionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:java.io.Writer
buildVPDCreationPolicyWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:java.io.Writer
buildVPDDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:java.lang.Object
clone()
PUBLIC: Performs a deep copy of this table definition.void
createConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter)
INTERNAL: Execute the SQL alter table constraint creation string.void
createConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Execute the SQL alter table constraint creation string.void
createDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer, java.util.Set<java.lang.String> createdDatabaseSchemas)
INTERNAL: Execute the DDL to create the database schema for this object.void
createDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, java.util.Set<java.lang.String> createdDatabaseSchemas)
INTERNAL: Execute the DDL to create the database schema for this object.void
createIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:
Write the SQL create index string to create index if passed a writer, else delegate to a method that executes the string on the database.java.lang.String
deletionStringFor(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor)
INTERNAL: Return the delete SQL string.void
dropConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter)
INTERNAL: Execute the SQL alter table constraint creation string.void
dropConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Execute the SQL alter table constraint creation string.void
dropDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Execute the DDL to drop the database schema for this object.void
dropDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Execute the DDL to drop the database schema for this object.void
dropIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:
Write the SQL drop index string to drop indexes if passed a writer, else delegate to a method that executes the string on the database.java.lang.String
getCreationPrefix()
INTERNAL: Return the beginning of the sql create statement - the part before the name.java.lang.String
getCreationSuffix()
INTERNAL: Return the end of the sql create statement - the part after the field list.java.lang.String
getDatabaseSchema()
PUBLIC: Return the schema associated with this table.FieldDefinition
getField(java.lang.String fieldName)
PUBLIC: Return the field the corresponds to the name.java.util.List<FieldDefinition>
getFields()
PUBLIC:java.util.Map<java.lang.String,ForeignKeyConstraint>
getForeignKeyMap()
INTERNAL:java.util.Collection<ForeignKeyConstraint>
getForeignKeys()
PUBLIC: Returns the ForeignKeyConstraint list.java.util.List<IndexDefinition>
getIndexes()
PUBLIC:java.util.List<java.lang.String>
getPrimaryKeyFieldNames()
PUBLIC:org.eclipse.persistence.internal.helper.DatabaseTable
getTable()
java.util.List<UniqueKeyConstraint>
getUniqueKeys()
PUBLIC:void
postCreateObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer createSchemaWriter, boolean createSQLFiles)
Execute any statements required after the creation of the objectvoid
preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer dropSchemaWriter, boolean createSQLFiles)
Execute any statements required before the deletion of the objectvoid
setCreateSQLFiles(boolean genFlag)
PUBLIC:void
setCreateVPDCalls(boolean createVPDCalls, java.lang.String tenantFieldName)
PUBLIC:void
setCreationPrefix(java.lang.String creationPrefix)
INTERNAL: Set the beginning of the sql create statement - the part before the name.void
setCreationSuffix(java.lang.String creationSuffix)
INTERNAL: Set the end of the sql create statement - the part after the field list.void
setFields(java.util.List<FieldDefinition> fields)
PUBLIC:void
setForeignKeyMap(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyMap)
INTERNAL:void
setForeignKeys(java.util.List<ForeignKeyConstraint> foreignKeys)
PUBLIC: Set the ForeignKeyConstraint list.void
setIndexes(java.util.List<IndexDefinition> indexes)
PUBLIC:void
setTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
void
setUniqueKeys(java.util.List<UniqueKeyConstraint> uniqueKeys)
PUBLIC:void
setUserDefinedForeignKeyConstraints(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyConstraints)
PUBLIC: Set the foreign key constraints for this table.boolean
shouldCreateDatabaseSchema(java.util.Set<java.lang.String> createdDatabaseSchemas)
If this table has a schema (and catalog specified) make sure it is created.boolean
shouldCreateVPDCalls(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Subclasses who care should override this method.void
writeLineSeperator(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
-
Methods inherited from class org.eclipse.persistence.tools.schemaframework.DatabaseObjectDefinition
createObject, createOnDatabase, dropFromDatabase, dropObject, getFieldTypeDefinition, getFieldTypeDefinition, getFullName, getName, getQualifier, hasDatabaseSchema, setName, setQualifier, toString
-
-
-
-
Field Detail
-
fields
protected java.util.List<FieldDefinition> fields
-
foreignKeyMap
protected java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyMap
-
uniqueKeys
protected java.util.List<UniqueKeyConstraint> uniqueKeys
-
indexes
protected java.util.List<IndexDefinition> indexes
-
creationPrefix
protected java.lang.String creationPrefix
-
creationSuffix
protected java.lang.String creationSuffix
-
table
protected org.eclipse.persistence.internal.helper.DatabaseTable table
-
hasUserDefinedForeignKeyConstraints
protected boolean hasUserDefinedForeignKeyConstraints
-
-
Method Detail
-
addField
public void addField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addField
public void addField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addField
public void addField(java.lang.String fieldName, java.lang.Class type, int fieldSize, int fieldSubSize)
PUBLIC: Add the field to the table.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addField
public void addField(java.lang.String fieldName, java.lang.String typeName)
PUBLIC: Add the field to the type to a nested type.- Parameters:
typeName
- is the name of the nested type.
-
addField
public void addField(FieldDefinition field)
PUBLIC: Add the field to the table.
-
addFieldOnDatabase
public void addFieldOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field)
INTERNAL: Execute the SQL alter table to add the field to the table.
-
buildAddFieldWriter
public java.io.Writer buildAddFieldWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field, java.io.Writer writer) throws ValidationException
INTERNAL: Return the alter table statement to add a field to the table.- Throws:
ValidationException
-
addForeignKeyConstraint
public void addForeignKeyConstraint(java.lang.String name, java.lang.String sourceField, java.lang.String targetField, java.lang.String targetTable)
PUBLIC: Add a foreign key constraint to the table. If there is a same name foreign key constraint already, nothing will happen.
-
addUniqueKeyConstraint
public void addUniqueKeyConstraint(java.lang.String name, java.lang.String sourceField)
PUBLIC: Add a unique key constraint to the table.
-
addUniqueKeyConstraint
public void addUniqueKeyConstraint(java.lang.String name, java.lang.String[] sourceFields)
PUBLIC: Add a unique key constraint to the table.
-
addForeignKeyConstraint
public void addForeignKeyConstraint(ForeignKeyConstraint foreignKey)
PUBLIC: Add a foreign key constraint to the table. If there is a same name foreign key constraint already, nothing will happen.
-
addUniqueKeyConstraint
public void addUniqueKeyConstraint(UniqueKeyConstraint uniqueKey)
PUBLIC: Add a unique key constraint to the table.
-
addIndex
public void addIndex(IndexDefinition index)
PUBLIC: Add an index to the table.
-
addIdentityField
public void addIdentityField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used. Identity fields are used on Sybase for native sequencing, The field must be of number type and cannot have a subsize.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addIdentityField
public void addIdentityField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table, default sizes are used. Identity fields are used on Sybase for native sequencing, The field must be of number type and cannot have a subsize.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addPrimaryKeyField
public void addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type)
PUBLIC: Add the field to the table, default sizes are used. This field is set as part of the primary key.- Parameters:
type
- is the Java class type corresponding to the database type.
-
addPrimaryKeyField
public void addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
PUBLIC: Add the field to the table, default sizes are used. This field is set as part of the primary key.- Parameters:
type
- is the Java class type corresponding to the database type.
-
buildConstraintCreationWriter
public java.io.Writer buildConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer) throws ValidationException
INTERNAL: Return the alter table statement to add the constraints. This is done separately from the create because of dependencies.- Throws:
ValidationException
-
buildConstraintDeletionWriter
public java.io.Writer buildConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer) throws ValidationException
INTERNAL: Return the alter table statement to drop the constraints. This is done separately to allow constraints to be dropped before the tables.- Throws:
ValidationException
-
buildUniqueConstraintCreationWriter
public java.io.Writer buildUniqueConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer) throws ValidationException
INTERNAL: Return the alter table statement to add the constraints. This is done separately from the create because of dependencies.- Throws:
ValidationException
-
buildUniqueConstraintDeletionWriter
public java.io.Writer buildUniqueConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer) throws ValidationException
INTERNAL: Return the alter table statement to drop the constraints. This is done separately to allow constraints to be dropped before the tables.- Throws:
ValidationException
-
buildIndex
public IndexDefinition buildIndex(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.util.List<java.lang.String> columnNames, boolean isUniqueSetOnField)
INTERNAL: Return the index creation statement.
-
buildIndexDeletionWriter
public java.io.Writer buildIndexDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.io.Writer writer, boolean isUniqueSetOnField)
INTERNAL: Return the index drop statement.
-
getCreationPrefix
public java.lang.String getCreationPrefix()
INTERNAL: Return the beginning of the sql create statement - the part before the name. Unless temp table is created should be "CREATE TABLE "
-
setCreationPrefix
public void setCreationPrefix(java.lang.String creationPrefix)
INTERNAL: Set the beginning of the sql create statement - the part before the name. Use to create temp. table.
-
getCreationSuffix
public java.lang.String getCreationSuffix()
INTERNAL: Return the end of the sql create statement - the part after the field list. Unless temp table is created should be empty.
-
getDatabaseSchema
public java.lang.String getDatabaseSchema()
PUBLIC: Return the schema associated with this table.- Overrides:
getDatabaseSchema
in classDatabaseObjectDefinition
- See Also:
TableDefinition
-
setCreationSuffix
public void setCreationSuffix(java.lang.String creationSuffix)
INTERNAL: Set the end of the sql create statement - the part after the field list.
-
buildCreationWriter
public java.io.Writer buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws ValidationException
INTERNAL: Return the create table statement.- Specified by:
buildCreationWriter
in classDatabaseObjectDefinition
- Throws:
ValidationException
-
buildDeletionWriter
public java.io.Writer buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws ValidationException
INTERNAL: Return the drop table statement.- Specified by:
buildDeletionWriter
in classDatabaseObjectDefinition
- Throws:
ValidationException
-
buildVPDCreationPolicyWriter
public java.io.Writer buildVPDCreationPolicyWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:- Overrides:
buildVPDCreationPolicyWriter
in classDatabaseObjectDefinition
-
buildVPDCreationFunctionWriter
public java.io.Writer buildVPDCreationFunctionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:- Overrides:
buildVPDCreationFunctionWriter
in classDatabaseObjectDefinition
-
buildDatabaseSchemaCreationWriter
protected java.io.Writer buildDatabaseSchemaCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer, java.util.Set<java.lang.String> createdDatabaseSchemas)
INTERNAL: Build the create schema DDL.
-
buildDatabaseSchemaDeletionWriter
protected java.io.Writer buildDatabaseSchemaDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Build the drop schema DDL.
-
buildVPDDeletionWriter
public java.io.Writer buildVPDDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:- Overrides:
buildVPDDeletionWriter
in classDatabaseObjectDefinition
-
buildFieldTypes
protected void buildFieldTypes(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Build the foreign key constraints.
-
buildForeignKeyConstraint
protected ForeignKeyConstraint buildForeignKeyConstraint(FieldDefinition field, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Build a foreign key constraint using FieldDefinition.getForeignKeyFieldName().
-
buildForeignKeyConstraint
protected ForeignKeyConstraint buildForeignKeyConstraint(java.util.List<java.lang.String> fkFieldNames, java.util.List<java.lang.String> pkFieldNames, TableDefinition targetTable, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Build a foreign key constraint.
-
buildForeignKeyConstraintName
protected java.lang.String buildForeignKeyConstraintName(java.lang.String tableName, java.lang.String fieldName, int maximumNameLength, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Return foreign key constraint name built from the table and field name with the specified maximum length. To make the name short enough we 1. Drop the "FK_" prefix. 2. Drop the underscore characters if any. 3. Drop the vowels from the table and field name. 4. Truncate the table name to zero length if necessary.
-
buildUniqueKeyConstraint
protected UniqueKeyConstraint buildUniqueKeyConstraint(java.lang.String name, java.util.List<java.lang.String> fieldNames, int serialNumber, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
-
buildUniqueKeyConstraintName
protected java.lang.String buildUniqueKeyConstraintName(java.lang.String tableName, int serialNumber, int maximumNameLength)
Return unique key constraint name built from the table name and sequence number with the specified maximum length. To make the name short enough we 1. Drop the "UNQ_" prefix. 2. Drop the underscore characters if any. 3. Drop the vowels from the table name. 4. Truncate the table name to zero length if necessary.
-
buildIndexName
protected java.lang.String buildIndexName(java.lang.String tableName, java.lang.String key, java.lang.String indexPrefix, int maximumNameLength, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
Return key constraint name built from the table and key name with the specified maximum length and index prefix. If indexPrefix is null, "IX_" is used for prefix. To make the name short enough we:1. Drop the prefix. 2. Drop the underscore characters if any. 3. Drop the vowels from the table and key name. 4. Truncate the table name to zero length if necessary.
-
clone
public java.lang.Object clone()
PUBLIC: Performs a deep copy of this table definition.- Overrides:
clone
in classDatabaseObjectDefinition
-
createConstraints
public void createConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter) throws EclipseLinkException
INTERNAL: Execute the SQL alter table constraint creation string.- Throws:
EclipseLinkException
-
createConstraintsOnDatabase
public void createConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the SQL alter table constraint creation string.- Throws:
EclipseLinkException
-
createDatabaseSchema
public void createDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer, java.util.Set<java.lang.String> createdDatabaseSchemas) throws EclipseLinkException
INTERNAL: Execute the DDL to create the database schema for this object.- Overrides:
createDatabaseSchema
in classDatabaseObjectDefinition
- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
createDatabaseSchemaOnDatabase
public void createDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, java.util.Set<java.lang.String> createdDatabaseSchemas) throws EclipseLinkException
INTERNAL: Execute the DDL to create the database schema for this object.- Overrides:
createDatabaseSchemaOnDatabase
in classDatabaseObjectDefinition
- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
createIndexes
public void createIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:
Write the SQL create index string to create index if passed a writer, else delegate to a method that executes the string on the database.- Throws:
ValidationException
- wraps any IOException from the writer
-
writeLineSeperator
public void writeLineSeperator(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
-
deletionStringFor
public java.lang.String deletionStringFor(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor)
INTERNAL: Return the delete SQL string.
-
dropDatabaseSchema
public void dropDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the database schema for this object.- Overrides:
dropDatabaseSchema
in classDatabaseObjectDefinition
- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
dropDatabaseSchemaOnDatabase
public void dropDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the database schema for this object.- Overrides:
dropDatabaseSchemaOnDatabase
in classDatabaseObjectDefinition
- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
dropConstraints
public void dropConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter) throws EclipseLinkException
INTERNAL: Execute the SQL alter table constraint creation string.- Throws:
EclipseLinkException
-
dropConstraintsOnDatabase
public void dropConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the SQL alter table constraint creation string. Exceptions are caught and masked so that all the foreign keys are dropped (even if they don't exist).- Throws:
EclipseLinkException
-
dropIndexes
public void dropIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL:
Write the SQL drop index string to drop indexes if passed a writer, else delegate to a method that executes the string on the database.- Throws:
ValidationException
- wraps any IOException from the writer
-
getForeignKeyMap
public java.util.Map<java.lang.String,ForeignKeyConstraint> getForeignKeyMap()
INTERNAL:
-
setForeignKeyMap
public void setForeignKeyMap(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyMap)
INTERNAL:
-
getField
public FieldDefinition getField(java.lang.String fieldName)
PUBLIC: Return the field the corresponds to the name.
-
getFields
public java.util.List<FieldDefinition> getFields()
PUBLIC:
-
getForeignKeys
public java.util.Collection<ForeignKeyConstraint> getForeignKeys()
PUBLIC: Returns the ForeignKeyConstraint list.
-
getUniqueKeys
public java.util.List<UniqueKeyConstraint> getUniqueKeys()
PUBLIC:
-
setIndexes
public void setIndexes(java.util.List<IndexDefinition> indexes)
PUBLIC:
-
setCreateVPDCalls
public void setCreateVPDCalls(boolean createVPDCalls, java.lang.String tenantFieldName)
PUBLIC:
-
getIndexes
public java.util.List<IndexDefinition> getIndexes()
PUBLIC:
-
getPrimaryKeyFieldNames
public java.util.List<java.lang.String> getPrimaryKeyFieldNames()
PUBLIC:
-
postCreateObject
public void postCreateObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer createSchemaWriter, boolean createSQLFiles)
Execute any statements required after the creation of the object- Overrides:
postCreateObject
in classDatabaseObjectDefinition
- Parameters:
session
-createSchemaWriter
-
-
preDropObject
public void preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer dropSchemaWriter, boolean createSQLFiles)
Execute any statements required before the deletion of the object- Overrides:
preDropObject
in classDatabaseObjectDefinition
- Parameters:
session
-dropSchemaWriter
-
-
setFields
public void setFields(java.util.List<FieldDefinition> fields)
PUBLIC:
-
setForeignKeys
public void setForeignKeys(java.util.List<ForeignKeyConstraint> foreignKeys)
PUBLIC: Set the ForeignKeyConstraint list. If the list contains the same name foreign key constraints, only the first one of that name will be added.
-
setUniqueKeys
public void setUniqueKeys(java.util.List<UniqueKeyConstraint> uniqueKeys)
PUBLIC:
-
setUserDefinedForeignKeyConstraints
public void setUserDefinedForeignKeyConstraints(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyConstraints)
PUBLIC: Set the foreign key constraints for this table.
-
shouldCreateDatabaseSchema
public boolean shouldCreateDatabaseSchema(java.util.Set<java.lang.String> createdDatabaseSchemas)
If this table has a schema (and catalog specified) make sure it is created.- Overrides:
shouldCreateDatabaseSchema
in classDatabaseObjectDefinition
-
shouldCreateVPDCalls
public boolean shouldCreateVPDCalls(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Subclasses who care should override this method.- Overrides:
shouldCreateVPDCalls
in classDatabaseObjectDefinition
-
setCreateSQLFiles
public void setCreateSQLFiles(boolean genFlag)
PUBLIC:
-
getTable
public org.eclipse.persistence.internal.helper.DatabaseTable getTable()
-
setTable
public void setTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
-
-