diff artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 230:fbd57d2eeaef

Changed semantics of locked artifact ids. artifacts/trunk@1634 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 31 Mar 2011 14:48:28 +0000
parents dd977fb7552e
children 16cd059945e5
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java	Thu Mar 31 08:58:42 2011 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java	Thu Mar 31 14:48:28 2011 +0000
@@ -34,12 +34,11 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
+import java.util.Set;
 
 import javax.xml.xpath.XPathConstants;
 
@@ -60,7 +59,9 @@
  * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
  */
 public class ArtifactDatabaseImpl
-implements   ArtifactDatabase, Id.Filter, Backend.FactoryLookup
+implements   ArtifactDatabase, 
+             DatabaseCleaner.LockedIdsProvider,
+             Backend.FactoryLookup
 {
     private static Logger logger =
         Logger.getLogger(ArtifactDatabaseImpl.class);
@@ -396,7 +397,7 @@
      * This artifacts should not be removed from the database by the
      * database cleaner.
      */
-    protected HashSet     backgroundIds;
+    protected HashSet<Integer>  backgroundIds;
 
     /**
      * Default constructor.
@@ -423,7 +424,7 @@
      */
     public ArtifactDatabaseImpl(FactoryBootstrap bootstrap, Backend backend) {
 
-        backgroundIds = new HashSet();
+        backgroundIds = new HashSet<Integer>();
 
         setupArtifactCollectionFactory(bootstrap);
         setupArtifactFactories(bootstrap);
@@ -555,7 +556,7 @@
      */
     protected void removeIdFromBackground(int id) {
         synchronized (backgroundIds) {
-            backgroundIds.remove(Integer.valueOf(id));
+            backgroundIds.remove(id);
         }
     }
 
@@ -572,19 +573,10 @@
         }
     }
 
-    public List filterIds(List ids) {
-        int N = ids.size();
-        ArrayList out = new ArrayList(N);
+    public Set<Integer> getLockedIds() {
         synchronized (backgroundIds) {
-            for (int i = 0; i < N; ++i) {
-                Id id = (Id)ids.get(i);
-                // only delete artifact if its not in background.
-                if (!backgroundIds.contains(Integer.valueOf(id.getId()))) {
-                    out.add(id);
-                }
-            }
+            return new HashSet<Integer>(backgroundIds);
         }
-        return out;
     }
 
     public String [][] artifactFactoryNamesAndDescriptions() {

http://dive4elements.wald.intevation.org