From 1e9032a25ce9ca54d4b77dd8c20084669053f3ea Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Wed, 9 Jun 2010 07:36:28 +0000
Subject: [PATCH] LMS-1564 Fixed misunderstanding in obtaining session context.
 Renamed an interface.

SVN: 16353
---
 ...rExtended.java => IDataSetHandlerRpc.java} | 15 ++++++++++++++-
 .../etlserver/api/v1/PutDataSetExecutor.java  | 19 +++++++++++++++----
 .../server/EncapsulatedOpenBISService.java    |  4 ++--
 .../shared/IEncapsulatedOpenBISService.java   |  5 +++--
 4 files changed, 34 insertions(+), 9 deletions(-)
 rename datastore_server/source/java/ch/systemsx/cisd/etlserver/{IDataSetHandlerExtended.java => IDataSetHandlerRpc.java} (73%)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java
similarity index 73%
rename from datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java
rename to datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java
index a4f63ce595e..d4d95561ffb 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java
@@ -20,11 +20,14 @@ import java.io.File;
 import java.util.List;
 
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO;
 
 /**
+ * The interface for data set handlers that are used in RPC situtations.
+ * 
  * @author Chandrasekhar Ramakrishnan
  */
-public interface IDataSetHandlerExtended extends IDataSetHandler
+public interface IDataSetHandlerRpc extends IDataSetHandler
 {
     /**
      * Handles the data set using the template to get default information for the data sets to be
@@ -36,4 +39,14 @@ public interface IDataSetHandlerExtended extends IDataSetHandler
      */
     public List<DataSetInformation> handleDataSet(final File dataSet,
             final DataSetInformation template);
+
+    /**
+     * Returns the session context for the current user.
+     */
+    public SessionContextDTO getSessionContext();
+
+    /**
+     * Get the file for a path from the data store.
+     */
+    public File getStoreFileForPath(String path);
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java
index cd160ccbe8a..d493c142f5e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java
@@ -39,7 +39,7 @@ import ch.systemsx.cisd.common.mail.IMailClient;
 import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult;
 import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm;
 import ch.systemsx.cisd.etlserver.IDataSetHandler;
-import ch.systemsx.cisd.etlserver.IDataSetHandlerExtended;
+import ch.systemsx.cisd.etlserver.IDataSetHandlerRpc;
 import ch.systemsx.cisd.etlserver.IDataSetInfoExtractor;
 import ch.systemsx.cisd.etlserver.IDataStrategyStore;
 import ch.systemsx.cisd.etlserver.IETLServerPlugin;
@@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
@@ -69,7 +70,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
-class PutDataSetExecutor implements IDataSetHandlerExtended
+class PutDataSetExecutor implements IDataSetHandlerRpc
 {
     // General State
     private final PutDataSetService service;
@@ -180,6 +181,11 @@ class PutDataSetExecutor implements IDataSetHandlerExtended
         return Collections.singletonList(helper.getDataSetInformation());
     }
 
+    public SessionContextDTO getSessionContext()
+    {
+        return getOpenBisService().tryGetSession(sessionToken);
+    }
+
     private void createDefaultOverride()
     {
         override = new DataSetInformation();
@@ -536,12 +542,17 @@ class PutDataSetExecutor implements IDataSetHandlerExtended
                 dataSetInfo.setDataSetProperties(override.getDataSetProperties());
             }
 
-            dataSetInfo.setUploadingUserEmail(service.getOpenBisService().tryGetSession()
-                    .getUserEmail());
+            dataSetInfo.setUploadingUserEmail(service.getOpenBisService().tryGetSession(
+                    sessionToken).getUserEmail());
 
             // TODO: When registering, set the registrator to the session owner; only an admin on
             // the space or an ETL server can override.
             return dataSetInfo;
         }
     }
+
+    public File getStoreFileForPath(String path)
+    {
+        return new File(service.getStoreRootDirectory(), path);
+    }
 }
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 a7ada36c132..2ffbf550242 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
@@ -708,8 +708,8 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
                 containerPermId, codes, sampleTypeCode));
     }
 
-    public SessionContextDTO tryGetSession()
+    public SessionContextDTO tryGetSession(String sToken)
     {
-        return service.tryGetSession(sessionToken);
+        return service.tryGetSession(sToken);
     }
 }
\ No newline at end of file
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 22af017aa6a..6b53e332704 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
@@ -232,6 +232,7 @@ public interface IEncapsulatedOpenBISService
     public Map<String, String> listOrRegisterComponents(final String containerPermId,
             Set<String> codes, String sampleTypeCode) throws UserFailureException;
 
-    /** See {@link IETLLIMSService#tryGetSession(String)} */
-    public SessionContextDTO tryGetSession();
+    /** See {@link IETLLIMSService#tryGetSession(String)} 
+     * @param sessionToken */
+    public SessionContextDTO tryGetSession(String sessionToken);
 }
\ No newline at end of file
-- 
GitLab