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 b9c20b5f4ccd02c59b2236bca580b0514945c5dd..41a9e1661db312c5eb4ec752593e021e83435d1b 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 43e3b999e318544b892454b57ab4fa9630ed7895..80be7c17bea687292a0da58ee5bfe49c73229eae 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 f06efe72e2513f5cd511b0893633e3ae55908756..17377ed6a066e968994194538735af364ca8bd8a 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 {