public class TableDefinition extends DatabaseObjectDefinition
Purpose: Allow a generic way of creating tables on the different platforms.
name, qualifier
Constructor and Description |
---|
TableDefinition() |
Modifier and Type | Method and Description |
---|---|
void |
addField(FieldDefinition field)
PUBLIC: Add the field to the table.
|
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 |
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(ForeignKeyConstraint foreignKey)
PUBLIC: Add a foreign key constraint 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 |
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.
|
java.io.Writer |
buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
INTERNAL: Return the drop table statement.
|
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.
|
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.
|
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 object
|
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
|
void |
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) |
createObject, createOnDatabase, dropFromDatabase, dropObject, getFullName, getName, getQualifier, setName, setQualifier, toString
public void addField(java.lang.String fieldName, java.lang.Class type)
type
- is the Java class type corresponding to the database type.public void addField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
type
- is the Java class type corresponding to the database type.public void addField(java.lang.String fieldName, java.lang.Class type, int fieldSize, int fieldSubSize)
type
- is the Java class type corresponding to the database type.public void addField(java.lang.String fieldName, java.lang.String typeName)
typeName
- is the name of the nested type.public void addField(FieldDefinition field)
public void addFieldOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field)
public java.io.Writer buildAddFieldWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, FieldDefinition field, java.io.Writer writer) throws ValidationException
ValidationException
public void addForeignKeyConstraint(java.lang.String name, java.lang.String sourceField, java.lang.String targetField, java.lang.String targetTable)
public void addUniqueKeyConstraint(java.lang.String name, java.lang.String sourceField)
public void addUniqueKeyConstraint(java.lang.String name, java.lang.String[] sourceFields)
public void addForeignKeyConstraint(ForeignKeyConstraint foreignKey)
public void addUniqueKeyConstraint(UniqueKeyConstraint uniqueKey)
public void addIndex(IndexDefinition index)
public void addIdentityField(java.lang.String fieldName, java.lang.Class type)
type
- is the Java class type corresponding to the database type.public void addIdentityField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
type
- is the Java class type corresponding to the database type.public void addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type)
type
- is the Java class type corresponding to the database type.public void addPrimaryKeyField(java.lang.String fieldName, java.lang.Class type, int fieldSize)
type
- is the Java class type corresponding to the database type.public java.io.Writer buildConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer) throws ValidationException
ValidationException
public java.io.Writer buildConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignKeyConstraint foreignKey, java.io.Writer writer) throws ValidationException
ValidationException
public java.io.Writer buildUniqueConstraintCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer) throws ValidationException
ValidationException
public java.io.Writer buildUniqueConstraintDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, UniqueKeyConstraint uniqueKey, java.io.Writer writer) throws ValidationException
ValidationException
public IndexDefinition buildIndex(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.util.List<java.lang.String> columnNames, boolean isUniqueSetOnField)
public java.io.Writer buildIndexDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.String key, java.io.Writer writer, boolean isUniqueSetOnField)
public java.lang.String getCreationPrefix()
public void setCreationPrefix(java.lang.String creationPrefix)
public java.lang.String getCreationSuffix()
public java.lang.String getDatabaseSchema()
getDatabaseSchema
in class DatabaseObjectDefinition
TableDefinition
public void setCreationSuffix(java.lang.String creationSuffix)
public java.io.Writer buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws ValidationException
buildCreationWriter
in class DatabaseObjectDefinition
ValidationException
public java.io.Writer buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws ValidationException
buildDeletionWriter
in class DatabaseObjectDefinition
ValidationException
public java.io.Writer buildVPDCreationPolicyWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
buildVPDCreationPolicyWriter
in class DatabaseObjectDefinition
public java.io.Writer buildVPDCreationFunctionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
buildVPDCreationFunctionWriter
in class DatabaseObjectDefinition
public java.io.Writer buildVPDDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
buildVPDDeletionWriter
in class DatabaseObjectDefinition
public java.lang.Object clone()
clone
in class DatabaseObjectDefinition
public void createConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter) throws EclipseLinkException
EclipseLinkException
public void createConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
EclipseLinkException
public void createDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer, java.util.Set<java.lang.String> createdDatabaseSchemas) throws EclipseLinkException
createDatabaseSchema
in class DatabaseObjectDefinition
EclipseLinkException
TableDefinition
public void createDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, java.util.Set<java.lang.String> createdDatabaseSchemas) throws EclipseLinkException
createDatabaseSchemaOnDatabase
in class DatabaseObjectDefinition
EclipseLinkException
TableDefinition
public void createIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
ValidationException
- wraps any IOException from the writerpublic void writeLineSeperator(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
public java.lang.String deletionStringFor(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor)
public void dropDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer) throws EclipseLinkException
dropDatabaseSchema
in class DatabaseObjectDefinition
EclipseLinkException
TableDefinition
public void dropDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
dropDatabaseSchemaOnDatabase
in class DatabaseObjectDefinition
EclipseLinkException
TableDefinition
public void dropConstraints(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer schemaWriter) throws EclipseLinkException
EclipseLinkException
public void dropConstraintsOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
EclipseLinkException
public void dropIndexes(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer writer)
ValidationException
- wraps any IOException from the writerpublic java.util.Map<java.lang.String,ForeignKeyConstraint> getForeignKeyMap()
public void setForeignKeyMap(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyMap)
public FieldDefinition getField(java.lang.String fieldName)
public java.util.List<FieldDefinition> getFields()
public java.util.Collection<ForeignKeyConstraint> getForeignKeys()
public java.util.List<UniqueKeyConstraint> getUniqueKeys()
public void setIndexes(java.util.List<IndexDefinition> indexes)
public void setCreateVPDCalls(boolean createVPDCalls, java.lang.String tenantFieldName)
public java.util.List<IndexDefinition> getIndexes()
public java.util.List<java.lang.String> getPrimaryKeyFieldNames()
public void postCreateObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer createSchemaWriter, boolean createSQLFiles)
postCreateObject
in class DatabaseObjectDefinition
session
-createSchemaWriter
-public void preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, java.io.Writer dropSchemaWriter, boolean createSQLFiles)
preDropObject
in class DatabaseObjectDefinition
session
-dropSchemaWriter
-public void setFields(java.util.List<FieldDefinition> fields)
public void setForeignKeys(java.util.List<ForeignKeyConstraint> foreignKeys)
public void setUniqueKeys(java.util.List<UniqueKeyConstraint> uniqueKeys)
public void setUserDefinedForeignKeyConstraints(java.util.Map<java.lang.String,ForeignKeyConstraint> foreignKeyConstraints)
public boolean shouldCreateDatabaseSchema(java.util.Set<java.lang.String> createdDatabaseSchemas)
shouldCreateDatabaseSchema
in class DatabaseObjectDefinition
public boolean shouldCreateVPDCalls(org.eclipse.persistence.internal.sessions.AbstractSession session)
shouldCreateVPDCalls
in class DatabaseObjectDefinition
public void setCreateSQLFiles(boolean genFlag)
public org.eclipse.persistence.internal.helper.DatabaseTable getTable()
public void setTable(org.eclipse.persistence.internal.helper.DatabaseTable table)