From 15acaad5d7a8b64c5204fbe2cdf619d8259859c5 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 24 Jun 2010 13:59:45 +0000 Subject: [PATCH] LMS-1588 extend ETLService by method tryToGetSampleIdentifier() SVN: 16717 --- .../openbis/generic/server/ETLService.java | 8 ++++++++ .../generic/server/ETLServiceLogger.java | 7 +++++++ .../generic/shared/IETLLIMSService.java | 10 ++++++++++ .../openbis/generic/server/ETLServiceTest.java | 18 ++++++++++++++++++ .../shared/IETLLIMSService.java.expected | 10 ++++++++++ 5 files changed, 53 insertions(+) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index bd46add69f1..6285970c71f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -341,6 +341,14 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET return SampleTranslator.translate(sample, session.getBaseIndexURL()); } + public SampleIdentifier tryToGetSampleIdentifier(String sessionToken, String samplePermID) + throws UserFailureException + { + assert sessionToken != null : "Unspecified session token."; + assert samplePermID != null : "Unspecified sample perm ID."; + return daoFactory.getSampleDAO().tryToFindByPermID(samplePermID).getSampleIdentifier(); + } + private ExperimentPE tryLoadExperimentBySampleIdentifier(final Session session, SampleIdentifier sampleIdentifier) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java index 9cce33786ab..a0cd9be82cb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java @@ -152,6 +152,13 @@ public class ETLServiceLogger extends AbstractServerLogger implements IETLServic return null; } + public SampleIdentifier tryToGetSampleIdentifier(String sessionToken, String samplePermID) + throws UserFailureException + { + logAccess(sessionToken, "tryToGetSampleIdentifier", "SAMPLE(%s)", samplePermID); + return null; + } + public ExperimentType getExperimentType(String sessionToken, String experimentTypeCode) throws UserFailureException { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java index 40e11583f40..ba1157aa530 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java @@ -117,6 +117,16 @@ public interface IETLLIMSService extends IServer, ISessionProvider final String sessionToken, @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) final SampleIdentifier sampleIdentifier) throws UserFailureException; + + /** + * Tries to get the identifier of sample with specified permanent ID. + * + * @return <code>null</code> if nothing found. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.ETL_SERVER) + public SampleIdentifier tryToGetSampleIdentifier(String sessionToken, String samplePermID) + throws UserFailureException; /** * Returns the ExperimentType together with assigned property types for specified experiment diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java index dfc55412cee..4bfb9cf3bb4 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java @@ -307,6 +307,24 @@ public class ETLServiceTest extends AbstractServerTestCase context.assertIsSatisfied(); } + @Test + public void testTryToGetSampleIdentifier() + { + context.checking(new Expectations() + { + { + one(sampleDAO).tryToFindByPermID("abc"); + SamplePE sample = new SamplePE(); + sample.setCode("s42"); + will(returnValue(sample)); + } + }); + + SampleIdentifier identifier = createService().tryToGetSampleIdentifier(SESSION_TOKEN, "abc"); + + assertEquals("s42", identifier.toString()); + context.assertIsSatisfied(); + } @Test public void testGetSampleType() { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected index 40e11583f40..ba1157aa530 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected @@ -117,6 +117,16 @@ public interface IETLLIMSService extends IServer, ISessionProvider final String sessionToken, @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) final SampleIdentifier sampleIdentifier) throws UserFailureException; + + /** + * Tries to get the identifier of sample with specified permanent ID. + * + * @return <code>null</code> if nothing found. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.ETL_SERVER) + public SampleIdentifier tryToGetSampleIdentifier(String sessionToken, String samplePermID) + throws UserFailureException; /** * Returns the ExperimentType together with assigned property types for specified experiment -- GitLab