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
    Modifier and Type | Field and Description
    --- | ---
    `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

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

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

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

    - ### Methods inherited from interface org.h2.api.Trigger

      `close, remove`

- - ### 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` - on SQL exception

    - #### fire

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

      Description copied from interface: `Trigger`
      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 trigger itself may change the data in the newRow array.

      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.

      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