org.h2.tools

## Class TriggerAdapter

- java.lang.Object
- - org.h2.tools.TriggerAdapter

All Implemented Interfaces:
  Trigger

    public abstract class TriggerAdapter
    extends java.lang.Object
    implements Trigger

An adapter for the trigger interface that allows to use the ResultSet interface instead of a row array.

### Field Summary

Fields
`protected boolean` `before` Whether the fire method is called before or after the operation is performed.
`protected java.lang.String` `schemaName` The schema name.
`protected java.lang.String` `tableName` The name of the table.
`protected java.lang.String` `triggerName` The name of the trigger.
`protected int` `type` The trigger type: INSERT, UPDATE, DELETE, SELECT, or a combination (a bit field).

### Fields inherited from interface org.h2.api.Trigger

`DELETE, INSERT, SELECT, UPDATE`

### Constructor Summary

Constructors
Constructor and Description
`TriggerAdapter()`

### Method Summary

Methods
`void` `close()` This method is called when the trigger is dropped.
`void` `fire(java.sql.Connection conn, java.lang.Object[] oldRow, java.lang.Object[] newRow)` This method is called for each triggered action.
`abstract void` `fire(java.sql.Connection conn, java.sql.ResultSet oldRow, java.sql.ResultSet newRow)` This method is called for each triggered action by the default fire(Connection conn, Object[] oldRow, Object[] newRow) method.
`void` `init(java.sql.Connection conn, java.lang.String schemaName, java.lang.String triggerName, java.lang.String tableName, boolean before, int type)` This method is called by the database engine once when initializing the trigger.
`void` `remove()` This method is called when the database is closed.

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

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

### Field Detail

#### schemaName

    protected java.lang.String schemaName

The schema name.

#### triggerName

    protected java.lang.String triggerName

The name of the trigger.

#### tableName

    protected java.lang.String tableName

The name of the table.

#### before

    protected boolean before

Whether the fire method is called before or after the operation is performed.

#### type

    protected int type

The trigger type: INSERT, UPDATE, DELETE, SELECT, or a combination (a bit field).

### Constructor Detail

#### TriggerAdapter

    public TriggerAdapter()

### Method Detail

#### init

    public void init(java.sql.Connection conn,
            java.lang.String schemaName,
            java.lang.String triggerName,
            java.lang.String tableName,
            boolean before,
            int type)
              throws java.sql.SQLException

This method is called by the database engine once when initializing the trigger. It is called when the trigger is created, as well as when the database is opened. The default implementation initialized the result sets.

Specified by:
  `init` in interface `Trigger`
Parameters:
  `conn` - a connection to the database
  `schemaName` - the name of the schema
  `triggerName` - the name of the trigger used in the CREATE TRIGGER statement
  `tableName` - the name of the table
  `before` - whether the fire method is called before or after the operation is performed
  `type` - the operation type: INSERT, UPDATE, DELETE, SELECT, or a combination (this parameter is a bit field)
Throws:
  `java.sql.SQLException`

#### fire

    public void fire(java.sql.Connection conn,
            java.lang.Object[] oldRow,
            java.lang.Object[] newRow)
              throws java.sql.SQLException

This method is called for each triggered action. The method is called immediately when the operation occurred (before it is committed). A transaction rollback will also rollback the operations that were done within the trigger, if the operations occurred within the same database. If the trigger changes state outside the database, a rollback trigger should be used.

The row arrays contain all columns of the table, in the same order as defined in the table.

The default implementation calls the fire method with the ResultSet parameters.

Specified by:
  `fire` in interface `Trigger`
Parameters:
  `conn` - a connection to the database
  `oldRow` - the old row, or null if no old row is available (for INSERT)
  `newRow` - the new row, or null if no new row is available (for DELETE)
Throws:
  `java.sql.SQLException` - if the operation must be undone

#### fire

    public abstract void fire(java.sql.Connection conn,
            java.sql.ResultSet oldRow,
            java.sql.ResultSet newRow)
                       throws java.sql.SQLException

This method is called for each triggered action by the default fire(Connection conn, Object[] oldRow, Object[] newRow) method. ResultSet.next does not need to be called (and calling it has no effect; it will always return true).

For "before" triggers, the new values of the new row may be changed using the ResultSet.updateX methods.

Parameters:
  `conn` - a connection to the database
  `oldRow` - the old row, or null if no old row is available (for INSERT)
  `newRow` - the new row, or null if no new row is available (for DELETE)
Throws:
  `java.sql.SQLException` - if the operation must be undone

#### remove

    public void remove()
                throws java.sql.SQLException

This method is called when the database is closed. If the method throws an exception, it will be logged, but closing the database will continue. The default implementation does nothing.

Specified by:
  `remove` in interface `Trigger`
Throws:
  `java.sql.SQLException`

#### close

    public void close()
               throws java.sql.SQLException

This method is called when the trigger is dropped. The default implementation does nothing.

Specified by:
  `close` in interface `Trigger`
Throws:
  `java.sql.SQLException`