1 /** 2 * com.mckoi.database.TransactionModificationListener 07 Mar 2003 3 * 4 * Mckoi SQL Database ( http://www.mckoi.com/database ) 5 * Copyright (C) 2000, 2001, 2002 Diehl and Associates, Inc. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * Version 2 as published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License Version 2 for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * Version 2 along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 * 20 * Change Log: 21 * 22 * 23 */ 24 25 package com.mckoi.database; 26 27 /** 28 * A listener that is notified of table modification events made by a 29 * transaction, both immediately inside a transaction and when a transaction 30 * commits. These events can occur either immediately before or immediately 31 * after the data is modified or during a commit. 32 * 33 * @author Tobias Downer 34 */ 35 36 public interface TransactionModificationListener { 37 38 /** 39 * An action for when changes to a table are committed. This event occurs 40 * after constraint checks, and before the change is actually committed to 41 * the database. If this method generates an exception then the change 42 * is rolled back and any changes made by the transaction are lost. This 43 * action is generated inside a 'commit lock' of the conglomerate, and 44 * therefore care should be taken with the performance of this method. 45 * <p> 46 * The event object provides access to a SimpleTransaction object that is a 47 * read-only view of the database in its committed state (if this operation 48 * is successful). The transaction can be used to perform any last minute 49 * deferred constraint checks. 50 * <p> 51 * This action is useful for last minute abortion of a transaction, or for 52 * updating cache information. It can not be used as a triggering mechanism 53 * and should never call back to user code. 54 */ 55 void tableCommitChange(TableCommitModificationEvent event); 56 57 } 58 59