diff artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 184:a22b7e367b25

Added Backend code to list the collection items in a collection. artifacts/trunk@1410 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 07 Mar 2011 11:37:49 +0000
parents 7eebe707a034
children 15c7638511dc
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Mon Mar 07 11:13:39 2011 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Mon Mar 07 11:37:49 2011 +0000
@@ -184,6 +184,9 @@
     public static final String SQL_COLLECTIONS_TOUCH_BY_ID =
         SQL.get("collections.touch.by.id");
 
+    public static final String SQL_COLLECTION_ITEMS_LIST_GID =
+        SQL.get("collection.items.list.gid");
+
     /** The singleton.*/
     protected static Backend instance;
 
@@ -1337,10 +1340,36 @@
         }.runWrite();
     }
 
-    public ArtifactCollection [] listCollectionArtifacts(String collectionId) {
-        // TODO: Implement me!
-        return null;
+    public CollectionItem [] listCollectionArtifacts(
+        final String collectionId
+    ) {
+        if (!isValidIdentifier(collectionId)) {
+            logger.debug("Invalid collection id: '" + collectionId + "'");
+            return null;
+        }
+
+        final ArrayList<CollectionItem> collectionItems =
+            new ArrayList<CollectionItem>();
+
+        SQLExecutor exec = new SQLExecutor() {
+            public boolean doIt() throws SQLException {
+                prepareStatement(SQL_COLLECTION_ITEMS_LIST_GID);
+                stmnt.setString(1, collectionId);
+                result = stmnt.executeQuery();
+                while (result.next()) {
+                    CollectionItem item = new CollectionItem(
+                        result.getString(1),
+                        result.getBytes(2));
+                    collectionItems.add(item);
+                }
+                return true;
+            }
+        };
+
+        return exec.runRead()
+            ? collectionItems.toArray(
+                new CollectionItem[collectionItems.size()])
+            : null;
     }
-
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org