Mercurial > dive4elements > framework
diff artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 343:542caebea773
Add functionality to get 'oldest' artifact of a collection.'
artifacts/trunk@3037 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 19 Oct 2011 15:55:33 +0000 |
parents | b46c5b13ac94 |
children | be883e843539 |
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Mon Oct 17 15:42:43 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Wed Oct 19 15:55:33 2011 +0000 @@ -115,6 +115,7 @@ public String SQL_COLLECTIONS_SELECT_GID; public String SQL_COLLECTIONS_CREATION_TIME; public String SQL_COLLECTIONS_ID_BY_GID; + public String SQL_COLLECTIONS_OLDEST_ARTIFACT; public String SQL_DELETE_COLLECTION_ITEMS; public String SQL_DELETE_COLLECTION; public String SQL_COLLECTION_CHECK_ARTIFACT; @@ -332,7 +333,8 @@ SQL_COLLECTIONS_SELECT_ALL = sql.get("collections.select.all"); SQL_COLLECTIONS_SELECT_GID = sql.get("collections.select.by.gid"); SQL_COLLECTIONS_CREATION_TIME = sql.get("collection.creation.time"); - SQL_COLLECTIONS_ID_BY_GID = sql.get("collections.id.by.gid"); + SQL_COLLECTIONS_OLDEST_ARTIFACT = sql.get("collections.artifacts.oldest"); + SQL_COLLECTIONS_ID_BY_GID = sql.get("collections.by.gid"); SQL_DELETE_COLLECTION_ITEMS = sql.get("delete.collection.items"); SQL_DELETE_COLLECTION = sql.get("delete.collection"); SQL_COLLECTION_CHECK_ARTIFACT = sql.get("collection.check.artifact"); @@ -1258,6 +1260,32 @@ } + public String getMasterArtifact(final String collectionId) { + if (!isValidIdentifier(collectionId)) { + logger.debug("Invalid collection id: '" + collectionId + "'"); + return null; + } + final List<String> uuid = new ArrayList<String>(); + SQLExecutor.Instance exec = sqlExecutor.new Instance() { + public boolean doIt() throws SQLException { + // Fetch masters (oldest artifact) id. + prepareStatement(SQL_COLLECTIONS_OLDEST_ARTIFACT); + stmnt.setString(1, collectionId); + logger.debug("getMaster.execute"); + result = stmnt.executeQuery(); + if (!result.next()) { + logger.debug("No such collection: " + collectionId); + return false; + } + logger.debug("getMasterArtifact result.getString " + result.getString(1)); + uuid.add(result.getString(1)); + reset(); + return true; + } + }; + return exec.runRead() ? uuid.get(0) : null; + } + public boolean deleteCollection(final String collectionId) { if (!isValidIdentifier(collectionId)) { logger.debug("Invalid collection id: '" + collectionId + "'");