From 0b64fbc3061714274db0f7c0ffa846dfcd361018 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 12 Oct 2009 08:24:56 +0000
Subject: [PATCH] SE-447 New method: IEncapsulated.registerSample() implemented

SVN: 12902
---
 .../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 310414b01ed..c20f2f93c21 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
@@ -37,6 +37,7 @@ 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.NewSample;
 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;
@@ -193,6 +194,11 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
     {
         return service.tryGetSampleWithExperiment(sessionToken, sampleIdentifier);
     }
+    
+    private void primRegisterSample(NewSample newSample)
+    {
+        service.registerSample(sessionToken, newSample);
+    }
 
     private final void primRegisterDataSet(final DataSetInformation dataSetInformation,
             final NewExternalData data)
@@ -275,6 +281,21 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         }
     }
 
+    synchronized public void registerSample(NewSample newSample) throws UserFailureException
+    {
+        assert newSample != null : "Unspecified sample.";
+        
+        checkSessionToken();
+        try
+        {
+            primRegisterSample(newSample);
+        } catch (final InvalidSessionException ex)
+        {
+            authenticate();
+            primRegisterSample(newSample);
+        }
+    }
+
     synchronized public final void registerDataSet(final DataSetInformation dataSetInformation,
             final NewExternalData data)
     {
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 184400c222e..1151534383c 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
@@ -27,6 +27,7 @@ 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.NewSample;
 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;
@@ -69,6 +70,11 @@ public interface IEncapsulatedOpenBISService
     public Sample tryGetSampleWithExperiment(final SampleIdentifier sampleIdentifier)
             throws UserFailureException;
 
+    /**
+     * Registers the specified sample.
+     */
+    public void registerSample(final NewSample newSample) throws UserFailureException;
+    
     /**
      * Registers the specified data.
      * <p>
-- 
GitLab