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:
Constructor and Description |
---|
DatabaseObjectDefinition() |
Modifier and Type | Method and Description |
---|---|
abstract Writer |
buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer)
INTERNAL:
Returns the writer used for creation of this object.
|
abstract Writer |
buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer)
INTERNAL:
Returns the writer used for deletion of this object.
|
Writer |
buildVPDCreationFunctionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer)
INTERNAL:
Sub classes should override.
|
Writer |
buildVPDCreationPolicyWriter(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer)
INTERNAL:
Sub classes should override.
|
Writer |
buildVPDDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer)
INTERNAL:
Sub classes should override.
|
Object |
clone()
PUBLIC:
|
void |
createDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer writer,
Set<String> createdDatabaseSchemas)
INTERNAL:
Execute the DDL to create the database schema for this object.
|
void |
createDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session,
Set<String> createdDatabaseSchemas)
INTERNAL:
Execute the DDL to create the database schema for this object.
|
void |
createObject(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer schemaWriter)
INTERNAL:
Either drop from the database directly or write the statement to a file.
|
void |
createOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Execute the DDL to create this object.
|
void |
dropDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session,
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 |
dropFromDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Execute the DDL to drop the object.
|
void |
dropObject(org.eclipse.persistence.internal.sessions.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 org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition |
getFieldTypeDefinition(org.eclipse.persistence.internal.sessions.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 is
null . |
protected static org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition |
getFieldTypeDefinition(org.eclipse.persistence.internal.databaseaccess.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
is
null and type for type name could not be found. |
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(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer createSchemaWriter,
boolean createSQLFiles)
Execute any statements required after the creation of the object
|
void |
preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session,
Writer dropSchemaWriter,
boolean createSQLFiles)
Execute any statements required before the deletion of the object
|
void |
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(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Subclasses who care should override this method.
|
String |
toString() |
protected static final org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition getFieldTypeDefinition(org.eclipse.persistence.internal.sessions.AbstractSession session, Class type, String name)
null
.session
- Session to search for already existing instances.type
- Field type class.name
- Filed type name.ValidationException
- when provided type is not valid database type.protected static final org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition getFieldTypeDefinition(org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform, Class type, String name)
null
and type for type name could not be found.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).ValidationException
- when provided type is not valid database type.public abstract Writer buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer) throws ValidationException
ValidationException
public Writer buildVPDCreationPolicyWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer)
public Writer buildVPDCreationFunctionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer)
public Writer buildVPDDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer)
public abstract Writer buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer) throws ValidationException
ValidationException
public void createDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer, Set<String> createdDatabaseSchemas) throws EclipseLinkException
EclipseLinkException
TableDefinition
public void createDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session, Set<String> createdDatabaseSchemas) throws EclipseLinkException
EclipseLinkException
TableDefinition
public void createObject(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer schemaWriter) throws EclipseLinkException
EclipseLinkException
public void createOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
EclipseLinkException
public boolean shouldCreateDatabaseSchema(Set<String> createdDatabaseSchemas)
public boolean shouldCreateVPDCalls(org.eclipse.persistence.internal.sessions.AbstractSession session)
public void dropDatabaseSchema(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer) throws EclipseLinkException
EclipseLinkException
TableDefinition
public void dropDatabaseSchemaOnDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
EclipseLinkException
TableDefinition
public void dropFromDatabase(org.eclipse.persistence.internal.sessions.AbstractSession session) throws EclipseLinkException
EclipseLinkException
public void dropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer schemaWriter, boolean createSQLFiles) throws EclipseLinkException
EclipseLinkException
public String getDatabaseSchema()
TableDefinition
public String getFullName()
public String getName()
public String getQualifier()
protected boolean hasDatabaseSchema()
public void postCreateObject(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer createSchemaWriter, boolean createSQLFiles)
session
- createSchemaWriter
- public void preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer dropSchemaWriter, boolean createSQLFiles)
session
- dropSchemaWriter
- public void setName(String name)
public void setQualifier(String qualifier)
Copyright © 2007–2021 Eclipse.org - EclipseLink Project. All rights reserved.