package com.sleepycat.je; import com.sleepycat.je.txn.Locker; import de.ovgu.cide.jakutil.*; /** * Implemented to receive database update notifications. * <p>The databaseUpdated() method may perform additional database operations * using the transaction passed to it, or by starting a new transaction. * The transaction passed may not be explicitly committed or aborted.</p> */ interface DatabaseTrigger { /** * Notifies the trigger that it has been added and will start receiving * update notifications. * @param db the database to which the trigger was added. */ void triggerAdded( Database db); /** * Notifies the trigger that it has been removed and will stop receiving * update notifications. * @param db the database from which the trigger was removed. */ void triggerRemoved( Database db); /** * Notifies the trigger that a put or delete operation has been performed * on the database. * <p>When a new entry is inserted, oldData will be null and newData will * be non-null.</p> * <p>When an existing entry is updated, oldData and newData will be * non-null.</p> * <p>When an existing entry is deleted, oldData will be non-null and * newData will be null.</p> * @param db the database that was modified. * @param locker the internal locker. * @param priKey the primary key, which is never null. * @param oldData the primary data before the change, or null if the record * did not previously exist. * @param newData the primary data after the change, or null if the record * has been deleted. */ void databaseUpdated( Database db, Locker locker, DatabaseEntry priKey, DatabaseEntry oldData, DatabaseEntry newData) throws DatabaseException ; }