Mercurial > dive4elements > framework
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 :