Mercurial > dive4elements > framework
diff artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 273:22a90706d32d
Enables the artifact server to set the TTL of a specific collection via REST call.
artifacts/trunk@2070 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 07 Jun 2011 16:27:47 +0000 |
parents | a2df2b48d2aa |
children | e92d5944fe4b |
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Tue Jun 07 11:06:54 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java Tue Jun 07 16:27:47 2011 +0000 @@ -126,6 +126,9 @@ public static final String SQL_OUTDATE_ARTIFACTS_COLLECTION = SQL.get("outdate.artifacts.collection"); + public static final String SQL_UPDATE_COLLECTION_TTL = + SQL.get("collections.update.ttl"); + public static final String SQL_OUTDATE_ARTIFACTS_USER = SQL.get("outdate.artifacts.user"); @@ -1513,5 +1516,30 @@ new CollectionItem[collectionItems.size()]) : null; } + + + public boolean setCollectionTTL(final String uuid, final Long ttl) { + if (!isValidIdentifier(uuid)) { + logger.debug("Invalid collection id: '" + uuid + "'"); + return false; + } + + return new SQLExecutor() { + public boolean doIt() throws SQLException { + prepareStatement(SQL_UPDATE_COLLECTION_TTL); + if (ttl == null) { + stmnt.setNull(1, Types.BIGINT); + } + else { + stmnt.setLong(1, ttl); + } + stmnt.setString(2, uuid); + stmnt.execute(); + conn.commit(); + + return true; + } + }.runWrite(); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :