From 2f6f494e0201c67ec10aa7f3d9bbf18104b45caa Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 7 Oct 2009 12:14:07 +0000
Subject: [PATCH] LMS-1219 Extends IEncapsulatedOpenBISService with listSamples
 method

SVN: 12875
---
 .../server/EncapsulatedOpenBISService.java    | 21 +++++++++++++++++++
 .../shared/IEncapsulatedOpenBISService.java   |  6 ++++++
 2 files changed, 27 insertions(+)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
index ad69e0b4b8a..310414b01ed 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
@@ -36,6 +36,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions;
@@ -182,6 +183,11 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
     {
         return service.tryToGetExperiment(sessionToken, experimentIdentifier);
     }
+    
+    private List<Sample> primListSamples(ListSampleCriteria criteria)
+    {
+        return service.listSamples(sessionToken, criteria);
+    }
 
     private final Sample primTryGetSampleWithExperiment(final SampleIdentifier sampleIdentifier)
     {
@@ -238,6 +244,21 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         }
     }
     
+    synchronized public List<Sample> listSamples(ListSampleCriteria criteria)
+    {
+        assert criteria != null : "Unspecifed criteria.";
+        
+        checkSessionToken();
+        try
+        {
+            return primListSamples(criteria);
+        } catch (InvalidSessionException ex)
+        {
+            authenticate();
+            return primListSamples(criteria);
+        }
+    }
+
     synchronized public final Sample tryGetSampleWithExperiment(
             final SampleIdentifier sampleIdentifier)
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
index ba481bd5e46..184400c222e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
@@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
@@ -54,6 +55,11 @@ public interface IEncapsulatedOpenBISService
     public Experiment tryToGetExperiment(ExperimentIdentifier experimentIdentifier)
             throws UserFailureException;
     
+    /**
+     * Gets all sample in accordance to the specified criteria.
+     */
+    public List<Sample> listSamples(final ListSampleCriteria criteria) throws UserFailureException;
+    
     /**
      * Gets a sample with the specified identifier. Sample is enriched with properties and the
      * experiment with properties.
-- 
GitLab