view artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java @ 305:f33401ea2a6c

Artifact database: Refactorized the usage of dialect independent SQL to be reusable. artifacts/trunk@2412 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 28 Jul 2011 10:19:35 +0000
parents 16cd059945e5
children
line wrap: on
line source
package de.intevation.artifactdatabase.h2;

import org.h2.api.Trigger;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;

import de.intevation.artifactdatabase.DBConfig;

import de.intevation.artifactdatabase.db.SQL;

import org.apache.log4j.Logger;

public class CollectionAccessUpdateTrigger
implements   Trigger
{
    private static Logger logger =
        Logger.getLogger(CollectionAccessUpdateTrigger.class);

    public String COLLECTIONS_TOUCH_TRIGGER_FUNCTION;

    public void init(
        Connection conn,
        String     schemaName,
        String     triggerName,
        String     tableName,
        boolean    before,
        int        type
    )
    throws SQLException {
        logger.debug("CollectionAccessUpdateTrigger.init");
        setupSQL(DBConfig.getInstance().getSQL());
    }

    protected void setupSQL(SQL sql) {
        COLLECTIONS_TOUCH_TRIGGER_FUNCTION =
            sql.get("collections.touch.trigger.function");
    }

    public void fire(
        Connection conn,
        Object []  oldRow,
        Object []  newRow
    )
    throws SQLException {
        logger.debug("CollectionAccessUpdateTrigger.fire");
        PreparedStatement stmnt = conn.prepareStatement(
            COLLECTIONS_TOUCH_TRIGGER_FUNCTION);
        stmnt.setObject(1, newRow[0]);
        stmnt.execute();
        stmnt.close();
    }

    public void close() throws SQLException {
        logger.debug("CollectionAccessUpdateTrigger.close");
    }

    public void remove() throws SQLException {
        logger.debug("CollectionAccessUpdateTrigger.remove");
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org