Package org.h2.schema

# Class TriggerObject

java.lang.Object
org.h2.engine.DbObject
org.h2.schema.SchemaObject
org.h2.schema.TriggerObject

All Implemented Interfaces:
  `HasSQL`

public final class TriggerObject extends SchemaObject
A trigger is created using the statement CREATE TRIGGER

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_QUEUE_SIZE`
The default queue size.

### Fields inherited from class org.h2.engine.DbObject

`AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, 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
Constructor
Description
`TriggerObject(Schema schema, int id, String name, Table table)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Close the trigger.
`void`
`fire(SessionLocal session, int type, boolean beforeAction)`
Call the trigger class if required.
`boolean`
`fireRow(SessionLocal session, Table table, Row oldRow, Row newRow, boolean beforeAction, boolean rollback)`
Call the fire method of the user-defined trigger class if required.
`String`
`getCreateSQL()`
Construct the CREATE ...
`String`
`getCreateSQLForCopy(Table targetTable, 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
`int`
`getQueueSize()`
`Table`
`getTable()`
Get the table of this trigger.
`String`
`getTriggerClassName()`
Get the trigger class name.
`String`
`getTriggerSource()`
`int`
`getType()`
Get the object type.
`int`
`getTypeMask()`
Returns the trigger type.
`StringBuilder`
`getTypeNameList(StringBuilder builder)`
Append the trigger types to the given string builder.
`boolean`
`isBefore()`
Check if this is a before trigger.
`boolean`
`isInsteadOf()`
`boolean`
`isNoWait()`
`boolean`
`isOnRollback()`
`boolean`
`isRowBased()`
`boolean`
`isSelectTrigger()`
Check whether this is a select trigger.
`void`
`removeChildrenAndResources(SessionLocal session)`
Delete all dependent children objects and resources of this object.
`void`
`setBefore(boolean before)`
`void`
`setInsteadOf(boolean insteadOf)`
`void`
`setNoWait(boolean noWait)`
`void`
`setOnRollback(boolean onRollback)`
`void`
`setQueueSize(int size)`
`void`
`setRowBased(boolean rowBased)`
`void`
`setTriggerClassName(String triggerClassName, boolean force)`
Set the trigger class name and load the class if possible.
`void`
`setTriggerSource(String source, boolean force)`
Set the trigger source code and compile it if possible.
`void`
`setTypeMask(int typeMask)`
Set the trigger type.

### Methods inherited from class org.h2.schema.SchemaObject

`getSchema, getSQL, getSQL`

### Methods inherited from class org.h2.engine.DbObject

`checkRename, equals, getChildren, getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, hashCode, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toString`

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

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

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

`getTraceSQL`

## Field Details

### DEFAULT_QUEUE_SIZE

public static final int DEFAULT_QUEUE_SIZE
The default queue size.

See Also:
  - Constant Field Values

## Constructor Details

### TriggerObject

public TriggerObject(Schema schema, int id, String name, Table table)

## Method Details

### setBefore

public void setBefore(boolean before)

### isInsteadOf

public boolean isInsteadOf()

### setInsteadOf

public void setInsteadOf(boolean insteadOf)

### setTriggerClassName

public void setTriggerClassName(String triggerClassName, boolean force)
Set the trigger class name and load the class if possible.

Parameters:
  `triggerClassName` - the name of the trigger class
  `force` - whether exceptions (due to missing class or access rights) should be ignored

### setTriggerSource

public void setTriggerSource(String source, boolean force)
Set the trigger source code and compile it if possible.

Parameters:
  `source` - the source code of a method returning a `Trigger`
  `force` - whether exceptions (due to syntax error) should be ignored

### fire

public void fire(SessionLocal session, int type, boolean beforeAction)
Call the trigger class if required. This method does nothing if the trigger is not defined for the given action. This method is called before or after any rows have been processed, once for each statement.

Parameters:
  `session` - the session
  `type` - the trigger type
  `beforeAction` - if this method is called before applying the changes

### fireRow

public boolean fireRow(SessionLocal session, Table table, Row oldRow, Row newRow, boolean beforeAction, boolean rollback)
Call the fire method of the user-defined trigger class if required. This method does nothing if the trigger is not defined for the given action. This method is called before or after a row is processed, possibly many times for each statement.

Parameters:
  `session` - the session
  `table` - the table
  `oldRow` - the old row
  `newRow` - the new row
  `beforeAction` - true if this method is called before the operation is applied
  `rollback` - when the operation occurred within a rollback
Returns:
  true if no further action is required (for 'instead of' triggers)

### getTypeMask

public int getTypeMask()
Returns the trigger type.

Returns:
  the trigger type

### setTypeMask

public void setTypeMask(int typeMask)
Set the trigger type.

Parameters:
  `typeMask` - the type

### setRowBased

public void setRowBased(boolean rowBased)

### isRowBased

public boolean isRowBased()

### setQueueSize

public void setQueueSize(int size)

### getQueueSize

public int getQueueSize()

### setNoWait

public void setNoWait(boolean noWait)

### isNoWait

public boolean isNoWait()

### setOnRollback

public void setOnRollback(boolean onRollback)

### isOnRollback

public boolean isOnRollback()

### getCreateSQLForCopy

public String getCreateSQLForCopy(Table targetTable, String quotedName)
Description copied from class: `DbObject`
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

Overrides:
  `getCreateSQLForCopy` in class `DbObject`
Parameters:
  `targetTable` - the new table
  `quotedName` - the quoted name
Returns:
  the SQL statement

### getTypeNameList

public StringBuilder getTypeNameList(StringBuilder builder)
Append the trigger types to the given string builder.

Parameters:
  `builder` - the builder
Returns:
  the passed string builder

### getCreateSQL

public String getCreateSQL()
Description copied from class: `DbObject`
Construct the CREATE ... SQL statement for this object.

Specified by:
  `getCreateSQL` in class `DbObject`
Returns:
  the SQL statement

### getType

public int getType()
Description copied from class: `DbObject`
Get the object type.

Specified by:
  `getType` in class `DbObject`
Returns:
  the object type

### removeChildrenAndResources

public void removeChildrenAndResources(SessionLocal session)
Description copied from class: `DbObject`
Delete all dependent children objects and resources of this object.

Specified by:
  `removeChildrenAndResources` in class `DbObject`
Parameters:
  `session` - the session

### getTable

public Table getTable()
Get the table of this trigger.

Returns:
  the table

### isBefore

public boolean isBefore()
Check if this is a before trigger.

Returns:
  true if it is

### getTriggerClassName

public String getTriggerClassName()
Get the trigger class name.

Returns:
  the class name

### getTriggerSource

public String getTriggerSource()

### close

public void close() throws SQLException
Close the trigger.

Throws:
  `SQLException` - on failure

### isSelectTrigger

public boolean isSelectTrigger()
Check whether this is a select trigger.

Returns:
  true if it is