Class AbstractDatabaseObject

  • All Implemented Interfaces:
    DatabaseObject
    Direct Known Subclasses:
    AbstractSchema, AbstractSchemaChild, AbstractUser, ConnectionDefinition, VirtualSchema

    public abstract class AbstractDatabaseObject
    extends Object
    implements DatabaseObject
    Base class for database objects.

    Database objects in integration tests are in most cases owned by the TDDB. This means the TDDB created them and is also responsible for cleaning them up.

    On the other hand the TDDB can also attach to objects that already exist in the database. In that case the TDDB has a control object, but does not own the database object.

    • Field Detail

      • owned

        protected final boolean owned
        Is this object owned?
      • name

        protected com.exasol.db.Identifier name
        Identifier
    • Constructor Detail

      • AbstractDatabaseObject

        protected AbstractDatabaseObject​(com.exasol.db.Identifier name,
                                         boolean owned)
        Create a database object.
        Parameters:
        name - name of the database object
        owned - true if the object is owned by the TDDB, false if the TDDB attached to a database object that already existed
    • Method Detail

      • markDeleted

        protected void markDeleted()
        Mark this object as deleted.
      • dropInternally

        protected abstract void dropInternally()
        This is called by drop() to actually execute the DROP statement.
      • verifyNotDeleted

        protected void verifyNotDeleted()
        Checks if this object was deleted and throws an exception in case it was deleted. This method must be called before each operation that assumes the object still exists in the database.
      • isOwned

        public boolean isOwned()
        Description copied from interface: DatabaseObject
        Check whether the script is a control object for a database object that already existed in the database.
        Specified by:
        isOwned in interface DatabaseObject
        Returns:
        true if this is a control object attached to an existing database object