From f717f6b716e466355b88fcbe54c990b19dc902d0 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 7 Oct 2009 12:13:41 +0000 Subject: [PATCH] LMS-1219 Extends IETLLIMSService with listSamples method SVN: 12874 --- .../openbis/generic/server/ETLService.java | 10 +++++++++ .../generic/server/ETLServiceLogger.java | 7 +++++++ .../generic/shared/IETLLIMSService.java | 13 ++++++++++++ .../shared/basic/dto/ListSampleCriteria.java | 6 +++++- .../shared/IETLLIMSService.java.expected | 21 ++++++++++++++++++- 5 files changed, 55 insertions(+), 2 deletions(-) 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 11d0e9cb533..427b0b0f791 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 @@ -33,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IExternalDataTable; import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleTable; import ch.systemsx.cisd.openbis.generic.server.business.bo.SimpleDataSetHelper; +import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSetTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO; @@ -45,6 +46,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; 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.ListOrSearchSampleCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SourceType; @@ -267,6 +270,13 @@ public class ETLService extends AbstractServer<IETLService> implements IETLServi LoadableFields.PROPERTIES); } + public List<Sample> listSamples(String sessionToken, ListSampleCriteria criteria) + { + final Session session = getSession(sessionToken); + final ISampleLister sampleLister = boFactory.createSampleLister(session); + return sampleLister.list(new ListOrSearchSampleCriteria(criteria)); + } + public Sample tryGetSampleWithExperiment(String sessionToken, SampleIdentifier sampleIdentifier) throws UserFailureException { 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 9564666c681..4dc3a1127f6 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 @@ -25,6 +25,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; 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.Sample; import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo; import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions; @@ -97,6 +98,12 @@ public class ETLServiceLogger extends AbstractServerLogger implements IETLServic return null; } + public List<Sample> listSamples(String sessionToken, ListSampleCriteria criteria) + { + logAccess(sessionToken, "list_samples", "CRITERIA(%s)", criteria); + return null; + } + public Sample tryGetSampleWithExperiment(String sessionToken, SampleIdentifier sampleIdentifier) 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 395a230d6e0..e3806085f6e 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 @@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.Authoriz import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RoleSet; import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAllowed; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.GroupIdentifierPredicate; +import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.ListSampleCriteriaPredicate; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.ListSamplesByPropertyPredicate; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.SampleOwnerIdentifierPredicate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; @@ -33,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; 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.Sample; import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo; import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria; @@ -90,6 +92,17 @@ public interface IETLLIMSService extends IServer, ISessionProvider @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) final SampleIdentifier sampleIdentifier) throws UserFailureException; + /** + * Lists samples using given configuration. + * + * @return a sorted list of {@link Sample}. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.ETL_SERVER) + public List<Sample> listSamples( + final String sessionToken, + @AuthorizationGuard(guardClass = ListSampleCriteriaPredicate.class) final ListSampleCriteria criteria); + /** * Tries to return the properties of the top sample (e.g. master plate) registered for the * specified sample code. diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java index 031ec3109b1..ad42bf82a27 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; +import java.io.Serializable; + import com.google.gwt.user.client.rpc.IsSerializable; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -31,8 +33,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; * @author Tomasz Pylak * @author Piotr Buczek */ -public class ListSampleCriteria implements IsSerializable +public class ListSampleCriteria implements IsSerializable, Serializable { + private static final long serialVersionUID = ServiceVersionHolder.VERSION; + // --------- filter 1 fields private SampleType sampleType; 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 3076c70dcc6..e3806085f6e 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 @@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.Authoriz import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RoleSet; import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAllowed; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.GroupIdentifierPredicate; +import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.ListSampleCriteriaPredicate; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.ListSamplesByPropertyPredicate; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.SampleOwnerIdentifierPredicate; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; @@ -33,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; 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.Sample; import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo; import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria; @@ -63,6 +65,12 @@ public interface IETLLIMSService extends IServer, ISessionProvider @RolesAllowed(RoleSet.ETL_SERVER) public void registerDataStoreServer(String sessionToken, DataStoreServerInfo dataStoreServerInfo); + /** + * Returns the specified experiment or <code>null</code> if not found. + * + * @param sessionToken the user authentication token. Must not be <code>null</code>. + * @param experimentIdentifier an identifier which uniquely identifies the experiment. + */ @Transactional(readOnly = true) @RolesAllowed(RoleSet.ETL_SERVER) public Experiment tryToGetExperiment(String sessionToken, @@ -84,6 +92,17 @@ public interface IETLLIMSService extends IServer, ISessionProvider @AuthorizationGuard(guardClass = SampleOwnerIdentifierPredicate.class) final SampleIdentifier sampleIdentifier) throws UserFailureException; + /** + * Lists samples using given configuration. + * + * @return a sorted list of {@link Sample}. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.ETL_SERVER) + public List<Sample> listSamples( + final String sessionToken, + @AuthorizationGuard(guardClass = ListSampleCriteriaPredicate.class) final ListSampleCriteria criteria); + /** * Tries to return the properties of the top sample (e.g. master plate) registered for the * specified sample code. @@ -178,4 +197,4 @@ public interface IETLLIMSService extends IServer, ISessionProvider public List<DeletedDataSet> listDeletedDataSets(String sessionToken, Long lastSeenDeletionEventIdOrNull); -} \ No newline at end of file +} -- GitLab