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 |
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 |
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.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:
|
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 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 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 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 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 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)