/* * ==================================================================== * Copyright (c) 2004-2010 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.internal.db; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import org.tmatesoft.sqljet.core.SqlJetException; import org.tmatesoft.sqljet.core.table.ISqlJetTable; import org.tmatesoft.svn.core.SVNException; /** * @version 1.4 * @author TMate Software Ltd. */ public abstract class SVNSqlJetTableStatement extends SVNSqlJetStatement { protected ISqlJetTable table; protected String tableName; private Collection<ISVNSqlJetTrigger> triggers; public SVNSqlJetTableStatement(SVNSqlJetDb sDb, Enum<?> tableName) throws SVNException { this(sDb, tableName.toString()); } public String getTableName() { return tableName; } public SVNSqlJetTableStatement(SVNSqlJetDb sDb, String tableName) throws SVNException { super(sDb); this.tableName = tableName; try { table = sDb.getDb().getTable(tableName); } catch (SqlJetException e) { SVNSqlJetDb.createSqlJetError(e); } } public void addTrigger(ISVNSqlJetTrigger trigger) { if (trigger != null) { if (this.triggers == null) { this.triggers = new ArrayList<ISVNSqlJetTrigger>(); } this.triggers.add(trigger); } } protected Collection<ISVNSqlJetTrigger> getTriggers() { if (this.triggers == null) { return Collections.emptyList(); } return this.triggers; } public ISqlJetTable getTable() { return table; } protected void statementStarted() { for (ISVNSqlJetTrigger trigger : getTriggers()) { try { trigger.statementStarted(sDb.getDb()); } catch (SqlJetException e) { // } } } protected void statementCompleted(SqlJetException error) { for (ISVNSqlJetTrigger trigger : getTriggers()) { try { trigger.statementCompleted(sDb.getDb(), error); } catch (SqlJetException e) { // } } } @Override public void reset() throws SVNException { super.reset(); if (this.triggers != null) { this.triggers.clear(); } } }