package jef.database.support; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import jef.database.IQueryableEntity; import jef.database.Session; import jef.database.Transaction; public final class DbOperatorListenerContainer implements DbOperatorListener{ private List<DbOperatorListener> listeners=new ArrayList<DbOperatorListener>(); public DbOperatorListenerContainer(DbOperatorListener... listeners){ this.listeners.addAll(Arrays.asList(listeners)); } public void add(DbOperatorListener lis){ this.listeners.add(lis); } public void beforeDelete(IQueryableEntity obj, Session db) { for(DbOperatorListener l:listeners){ l.beforeDelete(obj, db); } } public void afterDelete(IQueryableEntity obj, int n, Session db) { for(DbOperatorListener l:listeners){ l.afterDelete(obj, n, db); } } public void beforeUpdate(IQueryableEntity obj, Session db) { for(DbOperatorListener l:listeners){ l.beforeUpdate(obj, db); } } public void afterUpdate(IQueryableEntity obj, int n, Session db) { for(DbOperatorListener l:listeners){ l.afterUpdate(obj, n, db); } } public void newTransaction(Transaction transaction) { for(DbOperatorListener l:listeners){ l.newTransaction(transaction); } } public void beforeRollback(Transaction transaction) { for(DbOperatorListener l:listeners){ l.beforeRollback(transaction); } } public void postRollback(Transaction transaction) { for(DbOperatorListener l:listeners){ l.postRollback(transaction); } } public void beforeCommit(Transaction transaction) { for(DbOperatorListener l:listeners){ l.beforeCommit(transaction); } } public void postCommit(Transaction transaction) { for(DbOperatorListener l:listeners){ l.postCommit(transaction); } } public void tracsactionClose(Transaction transaction) { for(DbOperatorListener l:listeners){ l.tracsactionClose(transaction); } } public void beforeInseret(IQueryableEntity obj, Session abstractDbClient) { for(DbOperatorListener l:listeners){ l.beforeInseret(obj, abstractDbClient); } } public void afterInsert(IQueryableEntity obj, Session abstractDbClient) { for(DbOperatorListener l:listeners){ l.afterInsert(obj, abstractDbClient); } } public void beforeSqlExecute(String sql, Object... params) { for(DbOperatorListener l:listeners){ l.beforeSqlExecute(sql, params); } } public void afterSqlExecuted(String sql, int n, Object... params) { for(DbOperatorListener l:listeners){ l.afterSqlExecuted(sql, n, params); } } public void beforeSelect(String sql, Object... params) { for(DbOperatorListener l:listeners){ l.beforeSelect(sql, params); } } public void onDbClientClose() { for(DbOperatorListener l:listeners){ l.onDbClientClose(); } } }