org.h2.engine

## Class DbObject

- java.lang.Object
- - org.h2.engine.DbObject

- All Implemented Interfaces:
    org.h2.util.HasSQL
  Direct Known Subclasses:
    Comment, Right, RightOwner, Setting

      public abstract class DbObject
      extends java.lang.Object
      implements org.h2.util.HasSQL

  A database object such as a table, an index, or a user.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `AGGREGATE` This object is a user-defined aggregate function.
    `protected java.lang.String` | `comment` The comment (if set).
    `static int` | `COMMENT` This object is a comment.
    `static int` | `CONSTANT` This object is a constant.
    `static int` | `CONSTRAINT` This object is a constraint (check constraint, unique constraint, or referential constraint).
    `protected Database` | `database` The database.
    `static int` | `DOMAIN` This object is a domain.
    `static int` | `FUNCTION_ALIAS` This object is an alias for a Java function.
    `static int` | `INDEX` This object is an index.
    `static int` | `RIGHT` This object is a right.
    `static int` | `ROLE` This object is a role.
    `static int` | `SCHEMA` This object is a schema.
    `static int` | `SEQUENCE` This object is a sequence.
    `static int` | `SETTING` This object is a setting.
    `static int` | `SYNONYM` This object is a synonym.
    `static int` | `TABLE_OR_VIEW` The object is of the type table or view.
    `protected org.h2.message.Trace` | `trace` The trace module.
    `static int` | `TRIGGER` This object is a trigger.
    `static int` | `USER` This object is a user.

    - ### Fields inherited from interface org.h2.util.HasSQL

      `ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DbObject(Database db, int objectId, java.lang.String name, int traceModuleId)` Initialize some attributes of this object.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkRename()` Check if renaming is allowed.
    `java.util.ArrayList<DbObject>` | `getChildren()` Get the list of dependent children (for tables, this includes indexes and so on).
    `java.lang.String` | `getComment()` Get the current comment of this object.
    `abstract java.lang.String` | `getCreateSQL()` Construct the CREATE ...
    `java.lang.String` | `getCreateSQLForCopy(org.h2.table.Table table, java.lang.String quotedName)` Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table
    `java.lang.String` | `getCreateSQLForMeta()` Construct the CREATE ...
    `Database` | `getDatabase()` Get the database.
    `java.lang.String` | `getDropSQL()` Construct a DROP ...
    `int` | `getId()` Get the unique object id.
    `long` | `getModificationId()`
    `java.lang.String` | `getName()` Get the name.
    `java.lang.String` | `getSQL(int sqlFlags)` Get the SQL statement of this expression.
    `java.lang.StringBuilder` | `getSQL(java.lang.StringBuilder builder, int sqlFlags)` Appends the SQL statement of this object to the specified builder.
    `abstract int` | `getType()` Get the object type.
    `protected void` | `invalidate()` Set the main attributes to null to make sure the object is no longer used.
    `boolean` | `isTemporary()` Check if this object is temporary (for example, a temporary table).
    `boolean` | `isValid()`
    `abstract void` | `removeChildrenAndResources(SessionLocal session)` Delete all dependent children objects and resources of this object.
    `void` | `rename(java.lang.String newName)` Rename the object.
    `void` | `setComment(java.lang.String comment)` Change the comment of this object.
    `void` | `setModified()` Tell the object that is was modified.
    `protected void` | `setObjectName(java.lang.String name)`
    `void` | `setTemporary(boolean temporary)` Tell this object that it is temporary or not.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.h2.util.HasSQL

      `getTraceSQL`

- - ### Field Detail

    - #### TABLE_OR_VIEW

          public static final int TABLE_OR_VIEW

      The object is of the type table or view.
      See Also:
        Constant Field Values

    - #### INDEX

          public static final int INDEX

      This object is an index.
      See Also:
        Constant Field Values

    - #### USER

          public static final int USER

      This object is a user.
      See Also:
        Constant Field Values

    - #### SEQUENCE

          public static final int SEQUENCE

      This object is a sequence.
      See Also:
        Constant Field Values

    - #### TRIGGER

          public static final int TRIGGER

      This object is a trigger.
      See Also:
        Constant Field Values

    - #### CONSTRAINT

          public static final int CONSTRAINT

      This object is a constraint (check constraint, unique constraint, or referential constraint).
      See Also:
        Constant Field Values

    - #### SETTING

          public static final int SETTING

      This object is a setting.
      See Also:
        Constant Field Values

    - #### ROLE

          public static final int ROLE

      This object is a role.
      See Also:
        Constant Field Values

    - #### RIGHT

          public static final int RIGHT

      This object is a right.
      See Also:
        Constant Field Values

    - #### FUNCTION_ALIAS

          public static final int FUNCTION_ALIAS

      This object is an alias for a Java function.
      See Also:
        Constant Field Values

    - #### SCHEMA

          public static final int SCHEMA

      This object is a schema.
      See Also:
        Constant Field Values

    - #### CONSTANT

          public static final int CONSTANT

      This object is a constant.
      See Also:
        Constant Field Values

    - #### DOMAIN

          public static final int DOMAIN

      This object is a domain.
      See Also:
        Constant Field Values

    - #### COMMENT

          public static final int COMMENT

      This object is a comment.
      See Also:
        Constant Field Values

    - #### AGGREGATE

          public static final int AGGREGATE

      This object is a user-defined aggregate function.
      See Also:
        Constant Field Values

    - #### SYNONYM

          public static final int SYNONYM

      This object is a synonym.
      See Also:
        Constant Field Values

    - #### database

          protected Database database

      The database.

    - #### trace

          protected org.h2.message.Trace trace

      The trace module.

    - #### comment

          protected java.lang.String comment

      The comment (if set).

  - ### Constructor Detail

    - #### DbObject

          protected DbObject(Database db,
                             int objectId,
                             java.lang.String name,
                             int traceModuleId)

      Initialize some attributes of this object.
      Parameters:
        `db` - the database
        `objectId` - the object id
        `name` - the name
        `traceModuleId` - the trace module id

  - ### Method Detail

    - #### setModified

          public final void setModified()

      Tell the object that is was modified.

    - #### getModificationId

          public final long getModificationId()

    - #### setObjectName

          protected final void setObjectName(java.lang.String name)

    - #### getSQL

          public java.lang.String getSQL(int sqlFlags)

      Description copied from interface: `org.h2.util.HasSQL`
      Get the SQL statement of this expression. This may not always be the original SQL statement, specially after optimization.
      Specified by:
        `getSQL` in interface `org.h2.util.HasSQL`
      Parameters:
        `sqlFlags` - formatting flags
      Returns:
        the SQL statement

    - #### getSQL

          public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder,
                                                int sqlFlags)

      Description copied from interface: `org.h2.util.HasSQL`
      Appends the SQL statement of this object to the specified builder.
      Specified by:
        `getSQL` in interface `org.h2.util.HasSQL`
      Parameters:
        `builder` - string builder
        `sqlFlags` - formatting flags
      Returns:
        the specified string builder

    - #### getChildren

          public java.util.ArrayList<DbObject> getChildren()

      Get the list of dependent children (for tables, this includes indexes and so on).
      Returns:
        the list of children, or `null`

    - #### getDatabase

          public final Database getDatabase()

      Get the database.
      Returns:
        the database

    - #### getId

          public final int getId()

      Get the unique object id.
      Returns:
        the object id

    - #### getName

          public final java.lang.String getName()

      Get the name.
      Returns:
        the name

    - #### invalidate

          protected void invalidate()

      Set the main attributes to null to make sure the object is no longer used.

    - #### isValid

          public final boolean isValid()

    - #### getCreateSQLForCopy

          public java.lang.String getCreateSQLForCopy(org.h2.table.Table table,
                                                      java.lang.String quotedName)

      Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table
      Parameters:
        `table` - the new table
        `quotedName` - the quoted name
      Returns:
        the SQL statement

    - #### getCreateSQLForMeta

          public java.lang.String getCreateSQLForMeta()

      Construct the CREATE ... SQL statement for this object for meta table.
      Returns:
        the SQL statement

    - #### getCreateSQL

          public abstract java.lang.String getCreateSQL()

      Construct the CREATE ... SQL statement for this object.
      Returns:
        the SQL statement

    - #### getDropSQL

          public java.lang.String getDropSQL()

      Construct a DROP ... SQL statement for this object.
      Returns:
        the SQL statement

    - #### getType

          public abstract int getType()

      Get the object type.
      Returns:
        the object type

    - #### removeChildrenAndResources

          public abstract void removeChildrenAndResources(SessionLocal session)

      Delete all dependent children objects and resources of this object.
      Parameters:
        `session` - the session

    - #### checkRename

          public void checkRename()

      Check if renaming is allowed. Does nothing when allowed.

    - #### rename

          public void rename(java.lang.String newName)

      Rename the object.
      Parameters:
        `newName` - the new name

    - #### isTemporary

          public boolean isTemporary()

      Check if this object is temporary (for example, a temporary table).
      Returns:
        true if is temporary

    - #### setTemporary

          public void setTemporary(boolean temporary)

      Tell this object that it is temporary or not.
      Parameters:
        `temporary` - the new value

    - #### setComment

          public void setComment(java.lang.String comment)

      Change the comment of this object.
      Parameters:
        `comment` - the new comment, or null for no comment

    - #### getComment

          public java.lang.String getComment()

      Get the current comment of this object.
      Returns:
        the comment, or null if not set

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`