Package org.h2.engine

# Class DbObject

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

All Implemented Interfaces:
  `HasSQL`

Direct Known Subclasses:
  `Comment`, `Right`, `RightOwner`, `Schema`, `SchemaObject`, `Setting`

public abstract class DbObject extends Object implements HasSQL
A database object such as a table, an index, or a user.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`AGGREGATE`
This object is a user-defined aggregate function.
`protected String`
`comment`
The comment (if set).
`static final int`
`COMMENT`
This object is a comment.
`static final int`
`CONSTANT`
This object is a constant.
`static final int`
`CONSTRAINT`
This object is a constraint (check constraint, unique constraint, or referential constraint).
`protected Database`
`database`
The database.
`static final int`
`DOMAIN`
This object is a domain.
`static final int`
`FUNCTION_ALIAS`
This object is an alias for a Java function.
`static final int`
`INDEX`
This object is an index.
`static final int`
`RIGHT`
This object is a right.
`static final int`
`ROLE`
This object is a role.
`static final int`
`SCHEMA`
This object is a schema.
`static final int`
`SEQUENCE`
This object is a sequence.
`static final int`
`SETTING`
This object is a setting.
`static final int`
`SYNONYM`
This object is a synonym.
`static final int`
`TABLE_OR_VIEW`
The object is of the type table or view.
`protected Trace`
`trace`
The trace module.
`static final int`
`TRIGGER`
This object is a trigger.
`static final 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
Description
`protected`
`DbObject(Database db, int objectId, String name, int traceModuleId)`
Initialize some attributes of this object.

## Method Summary

Modifier and Type
Method
Description
`void`
`checkRename()`
Check if renaming is allowed.
`ArrayList<DbObject>`
`getChildren()`
Get the list of dependent children (for tables, this includes indexes and so on).
`String`
`getComment()`
Get the current comment of this object.
`abstract String`
`getCreateSQL()`
Construct the CREATE ...
`String`
`getCreateSQLForCopy(Table table, 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
`String`
`getCreateSQLForMeta()`
Construct the CREATE ...
`final Database`
`getDatabase()`
Get the database.
`String`
`getDropSQL()`
Construct a DROP ...
`final int`
`getId()`
Get the unique object id.
`final long`
`getModificationId()`
`final String`
`getName()`
Get the name.
`String`
`getSQL(int sqlFlags)`
Get the SQL statement of this expression.
`StringBuilder`
`getSQL(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).
`final boolean`
`isValid()`
`abstract void`
`removeChildrenAndResources(SessionLocal session)`
Delete all dependent children objects and resources of this object.
`void`
`rename(String newName)`
Rename the object.
`void`
`setComment(String comment)`
Change the comment of this object.
`final void`
`setModified()`
Tell the object that is was modified.
`protected final void`
`setObjectName(String name)`
`void`
`setTemporary(boolean temporary)`
Tell this object that it is temporary or not.
`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 Details

### 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 Trace trace
The trace module.

### comment

protected String comment
The comment (if set).

## Constructor Details

### DbObject

protected DbObject(Database db, int objectId, 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 Details

### setModified

public final void setModified()
Tell the object that is was modified.

### getModificationId

public final long getModificationId()

### setObjectName

protected final void setObjectName(String name)

### getSQL

public String getSQL(int sqlFlags)
Description copied from interface: `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 `HasSQL`
Parameters:
  `sqlFlags` - formatting flags
Returns:
  the SQL statement

### getSQL

public StringBuilder getSQL(StringBuilder builder, int sqlFlags)
Description copied from interface: `HasSQL`
Appends the SQL statement of this object to the specified builder.

Specified by:
  `getSQL` in interface `HasSQL`
Parameters:
  `builder` - string builder
  `sqlFlags` - formatting flags
Returns:
  the specified string builder

### getChildren

public 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 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 String getCreateSQLForCopy(Table table, 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 String getCreateSQLForMeta()
Construct the CREATE ... SQL statement for this object for meta table.

Returns:
  the SQL statement

### getCreateSQL

public abstract String getCreateSQL()
Construct the CREATE ... SQL statement for this object.

Returns:
  the SQL statement

### getDropSQL

public 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(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(String comment)
Change the comment of this object.

Parameters:
  `comment` - the new comment, or null for no comment

### getComment

public String getComment()
Get the current comment of this object.

Returns:
  the comment, or null if not set

### toString

public String toString()

Overrides:
  `toString` in class `Object`