comparison 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
comparison
equal deleted inserted replaced
342:9a85e0ef6e02 343:542caebea773
113 public String SQL_COLLECTIONS_SELECT_USER; 113 public String SQL_COLLECTIONS_SELECT_USER;
114 public String SQL_COLLECTIONS_SELECT_ALL; 114 public String SQL_COLLECTIONS_SELECT_ALL;
115 public String SQL_COLLECTIONS_SELECT_GID; 115 public String SQL_COLLECTIONS_SELECT_GID;
116 public String SQL_COLLECTIONS_CREATION_TIME; 116 public String SQL_COLLECTIONS_CREATION_TIME;
117 public String SQL_COLLECTIONS_ID_BY_GID; 117 public String SQL_COLLECTIONS_ID_BY_GID;
118 public String SQL_COLLECTIONS_OLDEST_ARTIFACT;
118 public String SQL_DELETE_COLLECTION_ITEMS; 119 public String SQL_DELETE_COLLECTION_ITEMS;
119 public String SQL_DELETE_COLLECTION; 120 public String SQL_DELETE_COLLECTION;
120 public String SQL_COLLECTION_CHECK_ARTIFACT; 121 public String SQL_COLLECTION_CHECK_ARTIFACT;
121 public String SQL_COLLECTION_ITEMS_ID_NEXTVAL; 122 public String SQL_COLLECTION_ITEMS_ID_NEXTVAL;
122 public String SQL_COLLECTION_ITEMS_INSERT; 123 public String SQL_COLLECTION_ITEMS_INSERT;
330 SQL_COLLECTIONS_INSERT = sql.get("collections.insert"); 331 SQL_COLLECTIONS_INSERT = sql.get("collections.insert");
331 SQL_COLLECTIONS_SELECT_USER = sql.get("collections.select.user"); 332 SQL_COLLECTIONS_SELECT_USER = sql.get("collections.select.user");
332 SQL_COLLECTIONS_SELECT_ALL = sql.get("collections.select.all"); 333 SQL_COLLECTIONS_SELECT_ALL = sql.get("collections.select.all");
333 SQL_COLLECTIONS_SELECT_GID = sql.get("collections.select.by.gid"); 334 SQL_COLLECTIONS_SELECT_GID = sql.get("collections.select.by.gid");
334 SQL_COLLECTIONS_CREATION_TIME = sql.get("collection.creation.time"); 335 SQL_COLLECTIONS_CREATION_TIME = sql.get("collection.creation.time");
335 SQL_COLLECTIONS_ID_BY_GID = sql.get("collections.id.by.gid"); 336 SQL_COLLECTIONS_OLDEST_ARTIFACT = sql.get("collections.artifacts.oldest");
337 SQL_COLLECTIONS_ID_BY_GID = sql.get("collections.by.gid");
336 SQL_DELETE_COLLECTION_ITEMS = sql.get("delete.collection.items"); 338 SQL_DELETE_COLLECTION_ITEMS = sql.get("delete.collection.items");
337 SQL_DELETE_COLLECTION = sql.get("delete.collection"); 339 SQL_DELETE_COLLECTION = sql.get("delete.collection");
338 SQL_COLLECTION_CHECK_ARTIFACT = sql.get("collection.check.artifact"); 340 SQL_COLLECTION_CHECK_ARTIFACT = sql.get("collection.check.artifact");
339 SQL_COLLECTION_ITEMS_ID_NEXTVAL = 341 SQL_COLLECTION_ITEMS_ID_NEXTVAL =
340 sql.get("collection.items.id.nextval"); 342 sql.get("collection.items.id.nextval");
1256 ? collections.toArray(new ArtifactCollection[collections.size()]) 1258 ? collections.toArray(new ArtifactCollection[collections.size()])
1257 : null; 1259 : null;
1258 } 1260 }
1259 1261
1260 1262
1263 public String getMasterArtifact(final String collectionId) {
1264 if (!isValidIdentifier(collectionId)) {
1265 logger.debug("Invalid collection id: '" + collectionId + "'");
1266 return null;
1267 }
1268 final List<String> uuid = new ArrayList<String>();
1269 SQLExecutor.Instance exec = sqlExecutor.new Instance() {
1270 public boolean doIt() throws SQLException {
1271 // Fetch masters (oldest artifact) id.
1272 prepareStatement(SQL_COLLECTIONS_OLDEST_ARTIFACT);
1273 stmnt.setString(1, collectionId);
1274 logger.debug("getMaster.execute");
1275 result = stmnt.executeQuery();
1276 if (!result.next()) {
1277 logger.debug("No such collection: " + collectionId);
1278 return false;
1279 }
1280 logger.debug("getMasterArtifact result.getString " + result.getString(1));
1281 uuid.add(result.getString(1));
1282 reset();
1283 return true;
1284 }
1285 };
1286 return exec.runRead() ? uuid.get(0) : null;
1287 }
1288
1261 public boolean deleteCollection(final String collectionId) { 1289 public boolean deleteCollection(final String collectionId) {
1262 if (!isValidIdentifier(collectionId)) { 1290 if (!isValidIdentifier(collectionId)) {
1263 logger.debug("Invalid collection id: '" + collectionId + "'"); 1291 logger.debug("Invalid collection id: '" + collectionId + "'");
1264 return false; 1292 return false;
1265 } 1293 }

http://dive4elements.wald.intevation.org