diff artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java @ 229:328ef982d768

When an artifact is touched the collections which contain the artifact are touched, too. artifacts/trunk@1631 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 31 Mar 2011 08:58:42 +0000
parents
children 16cd059945e5
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java	Thu Mar 31 08:58:42 2011 +0000
@@ -0,0 +1,56 @@
+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.SQL;
+
+import org.apache.log4j.Logger;
+
+public class CollectionAccessUpdateTrigger
+implements   Trigger
+{
+    private static Logger logger =
+        Logger.getLogger(CollectionAccessUpdateTrigger.class);
+
+    public static final String COLLECTIONS_TOUCH_TRIGGER_FUNCTION =
+        SQL.get("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");
+    }
+
+    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