org.h2.tools
Class TriggerAdapter

java.lang.Object
  extended by 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 inherited from interface org.h2.api.Trigger
DELETE, INSERT, SELECT, UPDATE
 
Constructor Summary
TriggerAdapter()
           
 
Method Summary
 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
 

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, or DELETE
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).

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