From f126e3d09a663752c4cc0e8273b10de512fe10aa Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Tue, 7 Jun 2011 15:23:26 +0000
Subject: [PATCH] LMS-2268 get experiment info by perm id

SVN: 21621
---
 .../client/web/client/ICommonClientService.java  |  6 ++++++
 .../web/client/ICommonClientServiceAsync.java    |  6 ++++++
 .../client/web/server/CommonClientService.java   | 16 ++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
index b9c20b5f4cc..41a9e1661db 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
@@ -722,6 +722,12 @@ public interface ICommonClientService extends IClientService
     public Experiment getExperimentInfo(final String experimentIdentifier)
             throws UserFailureException;
 
+    /**
+     * For given <var>experiment perm id</var> returns corresponding {@link Experiment}.
+     */
+    public Experiment getExperimentInfoByPermId(final String experimentPermId)
+            throws UserFailureException;
+
     /**
      * For given {@link TechId} returns corresponding {@link Experiment}.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
index 43e3b999e31..80be7c17bea 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
@@ -617,6 +617,12 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync
     public void getExperimentInfo(String experimentIdentifier,
             final AsyncCallback<Experiment> experimentInfoCallback);
 
+    /**
+     * @see ICommonClientService#getExperimentInfo(TechId)
+     */
+    public void getExperimentInfoByPermId(String experimentPermId,
+            final AsyncCallback<Experiment> experimentInfoCallback);
+
     /**
      * @see ICommonClientService#getExperimentInfo(TechId)
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
index f06efe72e25..17377ed6a06 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
@@ -1778,6 +1778,22 @@ public final class CommonClientService extends AbstractClientService implements
         }
     }
 
+    public Experiment getExperimentInfoByPermId(String experimentPermId)
+            throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
+    {
+        try
+        {
+            final String sessionToken = getSessionToken();
+            IEntityInformationHolderWithPermId expInfo =
+                    commonServer.getEntityInformationHolder(sessionToken, EntityKind.EXPERIMENT,
+                            experimentPermId);
+            return getExperimentInfo(new TechId(expInfo.getId()));
+        } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e)
+        {
+            throw UserFailureExceptionTranslator.translate(e);
+        }
+    }
+
     public final Experiment getExperimentInfo(final TechId experimentId)
             throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
     {
-- 
GitLab