From 919ab056988c42a500c0577b66b84f2f7a5b09a9 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Mon, 3 May 2010 08:50:17 +0000
Subject: [PATCH] LMS-1153 Use collection versions of data set access
 predicate.

SVN: 15714
---
 .../server/DssServiceRpcScreening.java        | 29 +++++++++----------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
index b9b656889e9..a05f5ce442b 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 import com.csvreader.CsvReader;
 
@@ -138,25 +139,23 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
     public List<ImageDatasetMetadata> listImageMetadata(String sessionToken,
             List<? extends IImageDatasetIdentifier> imageDatasets)
     {
-        try
+        ArrayList<String> datasetCodes = new ArrayList<String>();
+        for (IImageDatasetIdentifier dataset : imageDatasets)
+        {
+            datasetCodes.add(dataset.getDatasetCode());
+        }
+        Map<String, File> datasetRoots =
+                checkAccessAndGetRootDirectories(sessionToken, datasetCodes);
+        List<ImageDatasetMetadata> result = new ArrayList<ImageDatasetMetadata>();
+        for (IImageDatasetIdentifier dataset : imageDatasets)
         {
-            List<ImageDatasetMetadata> result = new ArrayList<ImageDatasetMetadata>();
-            for (IImageDatasetIdentifier dataset : imageDatasets)
+            File rootDirectoryOrNull = datasetRoots.get(dataset.getDatasetCode());
+            if (rootDirectoryOrNull != null)
             {
-                result.add(extractImageMetadata(sessionToken, dataset));
+                result.add(extractImageMetadata(dataset, rootDirectoryOrNull));
             }
-            return result;
-        } catch (IOException ex)
-        {
-            throw wrapIOException(ex);
         }
-    }
-
-    private ImageDatasetMetadata extractImageMetadata(String sessionToken,
-            IImageDatasetIdentifier dataset) throws IOException
-    {
-        File datasetRoot = checkAccessAndGetRootDirectory(sessionToken, dataset.getDatasetCode());
-        return extractImageMetadata(dataset, datasetRoot);
+        return result;
     }
 
     private static ImageDatasetMetadata extractImageMetadata(IImageDatasetIdentifier dataset,
-- 
GitLab