From 01546820a1be838e0a8ac9e84198bf844b3787ea Mon Sep 17 00:00:00 2001
From: ribeaudc <ribeaudc>
Date: Thu, 15 May 2008 08:37:39 +0000
Subject: [PATCH] [DMV-12] add: - 'mayHandle' to 'IStoreHandler'. -
 'FileScannedStore' (extracted from 'IncomingProcessor'). change: - More
 property keys moved to 'PropertyNames'.

SVN: 6060
---
 .../utilities/DirectoryScanningTimerTask.java  |  5 ++++-
 .../cisd/common/utilities/IStoreHandler.java   |  2 ++
 .../common/utilities/PathHandlerAdapter.java   | 18 ++++++++++++------
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
index 2f371ba0d38..096fd098ba6 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java
@@ -278,7 +278,10 @@ public final class DirectoryScanningTimerTask extends TimerTask
         }
         try
         {
-            handler.handle(item);
+            if (handler.mayHandle(item))
+            {
+                handler.handle(item);
+            }
         } finally
         {
             // If the item still exists, we assume that it has not been handled. So it should be
diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java b/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java
index f22cfa374a0..7a9dacf81c8 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/IStoreHandler.java
@@ -25,4 +25,6 @@ package ch.systemsx.cisd.common.utilities;
 public interface IStoreHandler
 {
     void handle(StoreItem item);
+
+    boolean mayHandle(StoreItem item);
 }
diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java b/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java
index 0a1c143f886..1d3e9b23be1 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/PathHandlerAdapter.java
@@ -40,17 +40,23 @@ public class PathHandlerAdapter implements IStoreHandler
         return new PathHandlerAdapter(handler, directory);
     }
 
+    private final File asFile(final StoreItem item)
+    {
+        return StoreItem.asFile(directory, item);
+    }
+
     //
     // IStoreHandler
     //
 
-    public void handle(final StoreItem item)
+    public final boolean mayHandle(final StoreItem item)
+    {
+        return pathHandler.mayHandle(asFile(item));
+    }
+
+    public final void handle(final StoreItem item)
     {
-        final File path = StoreItem.asFile(directory, item);
-        if (pathHandler.mayHandle(path))
-        {
-            pathHandler.handle(path);
-        }
+        pathHandler.handle(asFile(item));
     }
 
 }
-- 
GitLab