From fd4541544f49b4447fc81c478a922e5149a3b43f Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Wed, 21 Dec 2011 14:23:59 +0000
Subject: [PATCH] LMS-2700 Added new API calls to facade

SVN: 24075
---
 .../v1/IScreeningOpenbisServiceFacade.java    | 14 ++++++++---
 .../api/v1/ScreeningOpenbisServiceFacade.java | 25 ++++++++++++++++---
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java
index c37fcf08774..98aa555ea67 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java
@@ -28,13 +28,12 @@ import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.dss.client.api.v1.DataSet;
 import ch.systemsx.cisd.openbis.dss.client.api.v1.IDataSetDss;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.AuthorizationGuard;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetMetadataDTO;
-import ch.systemsx.cisd.openbis.dss.screening.shared.api.internal.authorization.DatasetIdentifierPredicate;
 import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.LoadImageConfiguration;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.IDataSetFilter;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.TypeBasedDataSetFilter;
 import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.ScreeningOpenbisServiceFacade.IImageOutputStreamProvider;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetImageRepresentationFormats;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentImageMetadata;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureInformation;
@@ -768,7 +767,7 @@ public interface IScreeningOpenbisServiceFacade
     public void loadImages(List<PlateImageReference> imageReferences,
             LoadImageConfiguration configuration, IPlateImageHandler plateImageHandler)
             throws IOException;
-    
+
     /**
      * Provides images for the specified list of image references (specified by data set code, well
      * position, channel and tile) and image selection criteria. These criteria are applied to the
@@ -852,7 +851,7 @@ public interface IScreeningOpenbisServiceFacade
     @Retry
     public List<ImageDatasetMetadata> listImageMetadata(
             List<? extends IImageDatasetIdentifier> imageDatasets);
-    
+
     /**
      * Returns for each of the specified image data sets the meta data of available image sets.
      */
@@ -888,4 +887,11 @@ public interface IScreeningOpenbisServiceFacade
     public ExperimentImageMetadata getExperimentImageMetadata(
             ExperimentIdentifier experimentIdentifier);
 
+    /**
+     * @return Information about the image representations available for the sepecified data sets.
+     */
+    @Retry
+    public List<DatasetImageRepresentationFormats> listAvailableImageRepresentationFormats(
+            List<? extends IDatasetIdentifier> dataSetIdentifiers);
+
 }
\ No newline at end of file
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
index 4b53abfaf02..dc796a8cd0d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
@@ -57,6 +57,7 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.TypeBasedDataSetFil
 import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.CachedImage;
 import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.WellImages;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.IScreeningApiServer;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetImageRepresentationFormats;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentImageMetadata;
@@ -1831,11 +1832,10 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa
                         }
                     });
     }
-    
 
     public void loadImages(List<PlateImageReference> imageReferences,
-            final IPlateImageHandler plateImageHandler, final IImageSetSelectionCriterion... criteria)
-            throws IOException
+            final IPlateImageHandler plateImageHandler,
+            final IImageSetSelectionCriterion... criteria) throws IOException
     {
         plateImageReferencesMultiplexer.process(imageReferences,
                 new IReferenceHandler<PlateImageReference>()
@@ -1903,4 +1903,23 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa
                 .getExperimentImageMetadata(sessionToken, experimentIdentifier);
     }
 
+    public List<DatasetImageRepresentationFormats> listAvailableImageRepresentationFormats(
+            List<? extends IDatasetIdentifier> dataSetIdentifiers)
+    {
+        List<IDatasetIdentifier> simplerList =
+                new ArrayList<IDatasetIdentifier>(dataSetIdentifiers.size());
+        simplerList.addAll(dataSetIdentifiers);
+        Map<String, List<IDatasetIdentifier>> map = getReferencesPerDss(simplerList);
+        Set<Entry<String, List<IDatasetIdentifier>>> entrySet = map.entrySet();
+        if (entrySet.size() != 1)
+        {
+            throw new IllegalArgumentException("Only one data store expected instead of "
+                    + map.keySet());
+        }
+        Entry<String, List<IDatasetIdentifier>> entry = entrySet.iterator().next();
+        IDssServiceRpcScreening service =
+                dssServiceCache.createDssService(entry.getKey()).getService();
+        return service.listAvailableImageRepresentationFormats(sessionToken, dataSetIdentifiers);
+    }
+
 }
-- 
GitLab