diff artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 170:ac0f8bd97277

Fix parameter propagation of creation time ond collection names. artifacts/trunk@1395 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 04 Mar 2011 10:51:10 +0000
parents c9c27aca2f70
children 25d472a67a9f
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Fri Mar 04 09:56:35 2011 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Fri Mar 04 10:51:10 2011 +0000
@@ -22,9 +22,11 @@
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Timestamp;
 import java.sql.Types;
 
 import java.util.ArrayList;
+import java.util.Date;
 
 import javax.sql.DataSource;
 
@@ -147,6 +149,9 @@
     public static final String SQL_COLLECTIONS_SELECT_ALL =
         SQL.get("collections.select.all");
 
+    public static final String SQL_COLLECTIONS_CREATION_TIME =
+        SQL.get("collection.creation.time");
+
     /** The singleton.*/
     protected static Backend instance;
 
@@ -1175,8 +1180,26 @@
                 stmnt.execute();
                 conn.commit();
 
+                stmnt.close(); stmnt = null;
+
+                // fetch creation time from database
+                // done this way to use the time system
+                // of the database.
+
+                stmnt = conn.prepareStatement(SQL_COLLECTIONS_CREATION_TIME);
+                stmnt.setInt(1, id);
+
+                result = stmnt.executeQuery();
+
+                Date creationTime = null;
+
+                if (result.next()) {
+                    Timestamp timestamp = result.getTimestamp(1);
+                    creationTime = new Date(timestamp.getTime());
+                }
+
                 return factory.createCollection(
-                    identifier, name, data, context);
+                    identifier, name, creationTime, data, context);
             }
             catch (SQLException sqle) {
                 conn.rollback();
@@ -1239,13 +1262,15 @@
             while (result.next()) {
                 String collectionIdentifier = result.getString(1);
                 String collectionName       = result.getString(2);
-                long   creationTime         = result.getLong(3);
+                Date   creationTime         =
+                    new Date(result.getTimestamp(3).getTime());
                 String userIdentifier       = result.getString(4);
 
                 ArtifactCollection collection =
                     collectionFactory.createCollection(
                         collectionIdentifier,
                         collectionName,
+                        creationTime,
                         data,
                         context);
 

http://dive4elements.wald.intevation.org