Class TableSequenceDefinition

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.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:
    Serialized Form
    • Field Detail

      • deleteSchema

        protected boolean deleteSchema
    • Constructor Detail

      • 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 Detail

      • buildCreationWriter

        public java.io.Writer buildCreationWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                  java.io.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 java.io.Writer buildDeletionWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                  java.io.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
      • getSequenceCounterFieldName

        public java.lang.String getSequenceCounterFieldName()
        PUBLIC:
      • getSequenceNameFieldName

        public java.lang.String getSequenceNameFieldName()
        PUBLIC:
      • getSequenceTable

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

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

        public java.lang.String getSequenceTableName()
        PUBLIC:
      • getSequenceTableQualifier

        public java.lang.String getSequenceTableQualifier()
        PUBLIC:
      • getSequenceTableQualifiedName

        public java.lang.String getSequenceTableQualifiedName()
        PUBLIC:
      • preDropObject

        public 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
        Overrides:
        preDropObject in class DatabaseObjectDefinition
        Parameters:
        session -
        dropSchemaWriter -
      • shouldDropTableDefinition

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