Class TableSequenceDefinition

All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
UnaryTableSequenceDefinition

public class TableSequenceDefinition extends SequenceDefinition

Purpose: Allow a generic way of creating sequences on the different platforms, and allow optional parameters to be specified.

See Also:
  • Field Details

    • tableDefinition

      protected TableDefinition tableDefinition
    • deleteSchema

      protected boolean deleteSchema
  • Constructor Details

    • TableSequenceDefinition

      public TableSequenceDefinition(Sequence sequence, boolean deleteSchema)
      INTERNAL: Should be a sequence defining table sequence in the db: either TableSequence DefaultSequence (only if case platform.getDefaultSequence() is a TableSequence).
  • Method Details

    • buildCreationWriter

      public Writer buildCreationWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer) throws ValidationException
      INTERNAL: Return the SQL required to insert the sequence row into the sequence table. Assume that the sequence table exists.
      Specified by:
      buildCreationWriter in class DatabaseObjectDefinition
      Throws:
      ValidationException
    • buildDeletionWriter

      public Writer buildDeletionWriter(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer writer) throws ValidationException
      INTERNAL: Return the SQL to delete the row from the sequence table. If we're dealing with create creation, then delegate to the table so that is dropped outright since we will delete the schema.
      Specified by:
      buildDeletionWriter in class DatabaseObjectDefinition
      Throws:
      ValidationException
    • checkIfExist

      public boolean checkIfExist(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DatabaseException
      INTERAL: Execute the SQL required to insert the sequence row into the sequence table. Assume that the sequence table exists.
      Specified by:
      checkIfExist in class SequenceDefinition
      Throws:
      DatabaseException
    • dropDatabaseSchema

      public void dropDatabaseSchema(org.eclipse.persistence.internal.sessions.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.
      Overrides:
      dropDatabaseSchema in class DatabaseObjectDefinition
      Throws:
      EclipseLinkException
      See Also:
    • 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. Does nothing at this level, subclasses that support this must override this method.
      Overrides:
      dropDatabaseSchemaOnDatabase in class DatabaseObjectDefinition
      Throws:
      EclipseLinkException
      See Also:
    • getDatabaseSchema

      public String getDatabaseSchema()
      PUBLIC: Return the schema associated with this table sequence.
      Overrides:
      getDatabaseSchema in class DatabaseObjectDefinition
      See Also:
    • getSequenceCounterFieldName

      public String getSequenceCounterFieldName()
      PUBLIC:
    • getSequenceNameFieldName

      public String getSequenceNameFieldName()
      PUBLIC:
    • getSequenceTable

      public org.eclipse.persistence.internal.helper.DatabaseTable getSequenceTable()
      Return the database table for the sequence.
    • getSequenceTableIndexes

      public List<IndexDefinition> getSequenceTableIndexes()
      PUBLIC:
    • getSequenceTableName

      public String getSequenceTableName()
      PUBLIC:
    • getSequenceTableQualifier

      public String getSequenceTableQualifier()
      PUBLIC:
    • getSequenceTableQualifiedName

      public String getSequenceTableQualifiedName()
      PUBLIC:
    • buildTableDefinition

      public TableDefinition buildTableDefinition()
      INTERNAL: Return a TableDefinition specifying sequence table. Cache the table definition for re-use (during CREATE and DROP)
      Overrides:
      buildTableDefinition in class SequenceDefinition
    • getTableSequence

      protected TableSequence getTableSequence()
    • isTableSequenceDefinition

      public boolean isTableSequenceDefinition()
      INTERNAL:
      Overrides:
      isTableSequenceDefinition in class SequenceDefinition
    • preDropObject

      public void preDropObject(org.eclipse.persistence.internal.sessions.AbstractSession session, Writer dropSchemaWriter, boolean createSQLFiles)
      Execute any statements required before the deletion of the object
      Overrides:
      preDropObject in class DatabaseObjectDefinition
      Parameters:
      session -
      dropSchemaWriter -
    • shouldDropTableDefinition

      protected boolean shouldDropTableDefinition()
      INTERNAL: Returns true if the table definition should be dropped during buildDeletionWriter.