From 6a2e32484107d44d8d0ddbe3477556c90e68a263 Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Wed, 27 Jul 2011 13:56:14 +0000 Subject: [PATCH] [LMS-2407] allow the "client.api.v1.DataSet" objects to be used from the screening facade too SVN: 22270 --- .../openbis/dss/client/api/v1/DataSet.java | 17 +++++++++------ .../api/v1/impl/OpenbisServiceFacade.java | 21 ++----------------- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java index a1a6b390e45..f3a6d1c2893 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java @@ -24,7 +24,6 @@ import java.util.HashMap; import java.util.List; import ch.systemsx.cisd.common.exceptions.InvalidSessionException; -import ch.systemsx.cisd.openbis.dss.client.api.v1.impl.OpenbisServiceFacade; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections; @@ -36,7 +35,9 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections; */ public class DataSet { - private final OpenbisServiceFacade facade; + private final IOpenbisServiceFacade facade; + + private final IDssComponent dssComponent; private ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet metadata; @@ -49,11 +50,12 @@ public class DataSet * @param metadata The metadata. May be null if not available at construction time. * @param dataSetDss The data. May be null if not available at construction time. */ - public DataSet(OpenbisServiceFacade facade, + public DataSet(IOpenbisServiceFacade facade, IDssComponent dssComponent, ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet metadata, IDataSetDss dataSetDss) { this.facade = facade; + this.dssComponent = dssComponent; this.metadata = metadata; this.dataSetDss = dataSetDss; @@ -228,7 +230,7 @@ public class DataSet // lazily initialize the ivar. if (null == dataSetDss) { - dataSetDss = facade.getDataSetDss(getMetadata().getCode()); + dataSetDss = dssComponent.getDataSet(getMetadata().getCode()); } return dataSetDss; } @@ -238,10 +240,13 @@ public class DataSet */ private ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet getMetadata() { - // lazily initialize the ivar. if (null == metadata) { - metadata = facade.tryRawDataSet(dataSetDss.getCode()); + DataSet dataSetWithMetaData = facade.getDataSet(dataSetDss.getCode()); + if (dataSetWithMetaData != null) + { + metadata = dataSetWithMetaData.getMetadata(); + } } return metadata; } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/OpenbisServiceFacade.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/OpenbisServiceFacade.java index bb433c30f7a..f511142c403 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/OpenbisServiceFacade.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/OpenbisServiceFacade.java @@ -258,23 +258,6 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade return convertDataSets(service.searchForDataSets(sessionToken, searchCriteria)); } - /** - * Internal method used by the {@link DataSet} object to initialize an ivar if necessary. - */ - public ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet tryRawDataSet( - String dataSetCode) throws EnvironmentFailureException - { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.setOperator(SearchOperator.MATCH_ANY_CLAUSES); - searchCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, - dataSetCode)); - List<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> matches = - service.searchForDataSets(sessionToken, searchCriteria); - - // Codes are guaranteed to be unique, so there is either 1 or 0 matches - return (matches.size() > 0) ? matches.get(0) : null; - } - public List<DataSet> listDataSetsForExperiments(final List<String> experimentIdentifiers) throws EnvironmentFailureException { @@ -335,7 +318,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade throws EnvironmentFailureException { IDataSetDss dataSetDss = dssComponent.putDataSet(newDataset, dataSetFile); - return new DataSet(this, null, dataSetDss); + return new DataSet(this, dssComponent, null, dataSetDss); } public List<ValidationError> validateDataSet(NewDataSetDTO newDataset, File dataSetFile) @@ -449,7 +432,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade ArrayList<DataSet> convertedDataSets = new ArrayList<DataSet>(internalDataSets.size()); for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet dataSet : internalDataSets) { - DataSet converted = new DataSet(this, dataSet, null); + DataSet converted = new DataSet(this, dssComponent, dataSet, null); convertedDataSets.add(converted); } -- GitLab