From 15cbeb4202f7419227b18101c2d16293e4b30567 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 16 Dec 2009 09:53:10 +0000
Subject: [PATCH] SE-178 extend Service in order to get data set type property
 types and data sets

SVN: 13958
---
 .../server/EncapsulatedOpenBISService.java    | 40 ++++++++++++++++---
 .../shared/IEncapsulatedOpenBISService.java   | 26 ++++++++++--
 2 files changed, 57 insertions(+), 9 deletions(-)

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 de9be787c82..306d9fa496a 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
@@ -31,6 +31,8 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProvi
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService;
+import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypeWithVocabularyTerms;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
@@ -196,9 +198,9 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         return service.tryGetSampleWithExperiment(sessionToken, sampleIdentifier);
     }
 
-    private void primRegisterSample(NewSample newSample)
+    private long primRegisterSample(NewSample newSample)
     {
-        service.registerSample(sessionToken, newSample);
+        return service.registerSample(sessionToken, newSample);
     }
 
     private final void primRegisterDataSet(final DataSetInformation dataSetInformation,
@@ -295,19 +297,47 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
             return service.getSampleType(sessionToken, sampleTypeCode);
         }
     }
+    
+    synchronized public DataSetTypeWithVocabularyTerms getDataSetType(String dataSetTypeCode)
+    {
+        checkSessionToken();
+        try
+        {
+            return service.getDataSetType(sessionToken, dataSetTypeCode);
+        } catch (InvalidSessionException ex)
+        {
+            authenticate();
+            return service.getDataSetType(sessionToken, dataSetTypeCode);
+        }
+    }
+
+    synchronized public List<ExternalData> listDataSetsBySampleID(long sampleID,
+            boolean showOnlyDirectlyConnected)
+    {
+        checkSessionToken();
+        TechId id = new TechId(sampleID);
+        try
+        {
+            return service.listDataSetsBySampleID(sessionToken, id, showOnlyDirectlyConnected);
+        } catch (InvalidSessionException ex)
+        {
+            authenticate();
+            return service.listDataSetsBySampleID(sessionToken, id, showOnlyDirectlyConnected);
+        }
+    }    
 
-    synchronized public void registerSample(NewSample newSample) throws UserFailureException
+    synchronized public long registerSample(NewSample newSample) throws UserFailureException
     {
         assert newSample != null : "Unspecified sample.";
 
         checkSessionToken();
         try
         {
-            primRegisterSample(newSample);
+            return primRegisterSample(newSample);
         } catch (final InvalidSessionException ex)
         {
             authenticate();
-            primRegisterSample(newSample);
+            return primRegisterSample(newSample);
         }
     }
 
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 f3aec3699f0..bc43254b797 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
@@ -21,6 +21,7 @@ import java.util.List;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypeWithVocabularyTerms;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
@@ -56,12 +57,12 @@ 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.
@@ -77,10 +78,27 @@ public interface IEncapsulatedOpenBISService
     public SampleType getSampleType(String sampleTypeCode) throws UserFailureException;
 
     /**
-     * Registers the specified sample.
+     * Returns the data set type together with assigned property types for the specified data set
+     * type code.
+     */
+    public DataSetTypeWithVocabularyTerms getDataSetType(String dataSetTypeCode);
+
+    /**
+     * Lists all data sets of the specified sample ID.
+     * 
+     * @param showOnlyDirectlyConnected If <code>true</code> only directly connected data sets are
+     *            returned.
      */
-    public void registerSample(final NewSample newSample) throws UserFailureException;
+    public List<ExternalData> listDataSetsBySampleID(long sampleID,
+            boolean showOnlyDirectlyConnected) throws UserFailureException;
     
+    /**
+     * Registers the specified sample.
+     * 
+     * @return the technical ID of the new sample
+     */
+    public long registerSample(final NewSample newSample) throws UserFailureException;
+
     /**
      * Registers the specified data.
      * <p>
-- 
GitLab