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 ad69e0b4b8ab36d9edd44f7abe519490a3da13ba..310414b01ed80a028293d7572cc8976f68bc7b79 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 @@ -36,6 +36,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; @@ -182,6 +183,11 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer { return service.tryToGetExperiment(sessionToken, experimentIdentifier); } + + private List<Sample> primListSamples(ListSampleCriteria criteria) + { + return service.listSamples(sessionToken, criteria); + } private final Sample primTryGetSampleWithExperiment(final SampleIdentifier sampleIdentifier) { @@ -238,6 +244,21 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer } } + synchronized public List<Sample> listSamples(ListSampleCriteria criteria) + { + assert criteria != null : "Unspecifed criteria."; + + checkSessionToken(); + try + { + return primListSamples(criteria); + } catch (InvalidSessionException ex) + { + authenticate(); + return primListSamples(criteria); + } + } + synchronized public final Sample tryGetSampleWithExperiment( final SampleIdentifier sampleIdentifier) { 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 ba481bd5e46371bf0fd5fbe8f9a56825205a56ba..184400c222e6c17872a5a9d35fbd4970996bddee 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 @@ -26,6 +26,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.ListSamplesByPropertyCriteria; import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; @@ -54,6 +55,11 @@ public interface IEncapsulatedOpenBISService public Experiment tryToGetExperiment(ExperimentIdentifier experimentIdentifier) throws UserFailureException; + /** + * Gets all sample in accordance to the specified criteria. + */ + public List<Sample> listSamples(final ListSampleCriteria criteria) throws UserFailureException; + /** * Gets a sample with the specified identifier. Sample is enriched with properties and the * experiment with properties.