Class DatabaseObjectDefinition
- java.lang.Object
-
- org.eclipse.persistence.tools.schemaframework.DatabaseObjectDefinition
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
IndexDefinition
,NestedTableDefinition
,PackageDefinition
,SequenceDefinition
,StoredProcedureDefinition
,TableDefinition
,TypeDefinition
,VarrayDefinition
,ViewDefinition
public abstract class DatabaseObjectDefinition extends Object implements Cloneable, Serializable
Purpose: Define a database object for the purpose of creation and deletion. A database object is an entity such as a table, view, proc, sequence...
Responsibilities:
- Be able to create and drop the object from the database.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DatabaseObjectDefinition()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Writer
buildCreationWriter(AbstractSession session, Writer writer)
INTERNAL: Returns the writer used for creation of this object.abstract Writer
buildDeletionWriter(AbstractSession session, Writer writer)
INTERNAL: Returns the writer used for deletion of this object.Writer
buildVPDCreationFunctionWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.Writer
buildVPDCreationPolicyWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.Writer
buildVPDDeletionWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.Object
clone()
PUBLIC:void
createDatabaseSchema(AbstractSession session, Writer writer, Set<String> createdDatabaseSchemas)
INTERNAL: Execute the DDL to create the database schema for this object.void
createDatabaseSchemaOnDatabase(AbstractSession session, Set<String> createdDatabaseSchemas)
INTERNAL: Execute the DDL to create the database schema for this object.void
createObject(AbstractSession session, Writer schemaWriter)
INTERNAL: Either drop from the database directly or write the statement to a file.void
createOnDatabase(AbstractSession session)
INTERNAL: Execute the DDL to create this object.void
dropDatabaseSchema(AbstractSession session, Writer writer)
INTERNAL: Execute the DDL to drop the database schema for this object.void
dropDatabaseSchemaOnDatabase(AbstractSession session)
INTERNAL: Execute the DDL to drop the database schema for this object.void
dropFromDatabase(AbstractSession session)
INTERNAL: Execute the DDL to drop the object.void
dropObject(AbstractSession session, Writer schemaWriter, boolean createSQLFiles)
INTERNAL: Execute the DDL to drop the object.String
getDatabaseSchema()
PUBLIC: Return the database schema associated with this database object.protected static FieldTypeDefinition
getFieldTypeDefinition(DatabasePlatform platform, Class type, String name)
INTERNAL: Retrieve database platform specific field definition from database specific platform handler for existing type or build a new one when type isnull
and type for type name could not be found.protected static FieldTypeDefinition
getFieldTypeDefinition(AbstractSession session, Class type, String name)
INTERNAL: Retrieve a database platform specific definition from session for existing type instance or build a new one when type isnull
.String
getFullName()
INTERNAL: Most major databases support a creator name scope.String
getName()
PUBLIC: Return the name of the object.String
getQualifier()
PUBLIC: Most major databases support a creator name scope.protected boolean
hasDatabaseSchema()
INTERNAL: Return true is this database object definition has a schema definition.void
postCreateObject(AbstractSession session, Writer createSchemaWriter, boolean createSQLFiles)
Execute any statements required after the creation of the objectvoid
preDropObject(AbstractSession session, Writer dropSchemaWriter, boolean createSQLFiles)
Execute any statements required before the deletion of the objectvoid
setName(String name)
PUBLIC: Set the name of the object.void
setQualifier(String qualifier)
PUBLIC: Most major databases support a creator name scope.boolean
shouldCreateDatabaseSchema(Set<String> createdDatabaseSchemas)
INTERNAL: Subclasses who care should override this method, e.g.boolean
shouldCreateVPDCalls(AbstractSession session)
INTERNAL: Subclasses who care should override this method.String
toString()
-
-
-
Method Detail
-
getFieldTypeDefinition
protected static final FieldTypeDefinition getFieldTypeDefinition(AbstractSession session, Class type, String name)
INTERNAL: Retrieve a database platform specific definition from session for existing type instance or build a new one when type isnull
.- Parameters:
session
- Session to search for already existing instances.type
- Field type class.name
- Filed type name.- Returns:
- Database platform specific definition instance.
- Throws:
ValidationException
- when provided type is not valid database type.
-
getFieldTypeDefinition
protected static final FieldTypeDefinition getFieldTypeDefinition(DatabasePlatform platform, Class type, String name)
INTERNAL: Retrieve database platform specific field definition from database specific platform handler for existing type or build a new one when type isnull
and type for type name could not be found.- Parameters:
platform
- Specific database platform handler.type
- Field type (will be processed first when available).name
- Field type name (will be processed as backup option when type class is not available).- Throws:
ValidationException
- when provided type is not valid database type.
-
buildCreationWriter
public abstract Writer buildCreationWriter(AbstractSession session, Writer writer) throws ValidationException
INTERNAL: Returns the writer used for creation of this object.- Throws:
ValidationException
-
buildVPDCreationPolicyWriter
public Writer buildVPDCreationPolicyWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.
-
buildVPDCreationFunctionWriter
public Writer buildVPDCreationFunctionWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.
-
buildVPDDeletionWriter
public Writer buildVPDDeletionWriter(AbstractSession session, Writer writer)
INTERNAL: Sub classes should override.
-
buildDeletionWriter
public abstract Writer buildDeletionWriter(AbstractSession session, Writer writer) throws ValidationException
INTERNAL: Returns the writer used for deletion of this object.- Throws:
ValidationException
-
createDatabaseSchema
public void createDatabaseSchema(AbstractSession session, Writer writer, Set<String> createdDatabaseSchemas) throws EclipseLinkException
INTERNAL: Execute the DDL to create the database schema for this object. Does nothing at this level, subclasses that support this must override this method.- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
createDatabaseSchemaOnDatabase
public void createDatabaseSchemaOnDatabase(AbstractSession session, Set<String> createdDatabaseSchemas) throws EclipseLinkException
INTERNAL: Execute the DDL to create the database schema for this object. Does nothing at this level, subclasses that support this must override this method.- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
createObject
public void createObject(AbstractSession session, Writer schemaWriter) throws EclipseLinkException
INTERNAL: Either drop from the database directly or write the statement to a file. Database objects are root level entities such as tables, views, procs, sequences...- Throws:
EclipseLinkException
-
createOnDatabase
public void createOnDatabase(AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the DDL to create this object.- Throws:
EclipseLinkException
-
shouldCreateDatabaseSchema
public boolean shouldCreateDatabaseSchema(Set<String> createdDatabaseSchemas)
INTERNAL: Subclasses who care should override this method, e.g. TableDefinition.
-
shouldCreateVPDCalls
public boolean shouldCreateVPDCalls(AbstractSession session)
INTERNAL: Subclasses who care should override this method.
-
dropDatabaseSchema
public void dropDatabaseSchema(AbstractSession session, Writer writer) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the database schema for this object. Does nothing at this level, subclasses that support this must override this method.- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
dropDatabaseSchemaOnDatabase
public void dropDatabaseSchemaOnDatabase(AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the database schema for this object. Does nothing at this level, subclasses that support this must override this method.- Throws:
EclipseLinkException
- See Also:
TableDefinition
-
dropFromDatabase
public void dropFromDatabase(AbstractSession session) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the object.- Throws:
EclipseLinkException
-
dropObject
public void dropObject(AbstractSession session, Writer schemaWriter, boolean createSQLFiles) throws EclipseLinkException
INTERNAL: Execute the DDL to drop the object. Either directly from the database of write out the statement to a file.- Throws:
EclipseLinkException
-
getDatabaseSchema
public String getDatabaseSchema()
PUBLIC: Return the database schema associated with this database object.- See Also:
TableDefinition
-
getFullName
public String getFullName()
INTERNAL: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.
-
getName
public String getName()
PUBLIC: Return the name of the object. i.e. the table name or the sequence name.
-
getQualifier
public String getQualifier()
PUBLIC: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.
-
hasDatabaseSchema
protected boolean hasDatabaseSchema()
INTERNAL: Return true is this database object definition has a schema definition.
-
postCreateObject
public void postCreateObject(AbstractSession session, Writer createSchemaWriter, boolean createSQLFiles)
Execute any statements required after the creation of the object- Parameters:
session
-createSchemaWriter
-
-
preDropObject
public void preDropObject(AbstractSession session, Writer dropSchemaWriter, boolean createSQLFiles)
Execute any statements required before the deletion of the object- Parameters:
session
-dropSchemaWriter
-
-
setName
public void setName(String name)
PUBLIC: Set the name of the object. i.e. the table name or the sequence name.
-
setQualifier
public void setQualifier(String qualifier)
PUBLIC: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.
-
-