Skip to content
Snippets Groups Projects
Commit 6a2e3248 authored by kaloyane's avatar kaloyane
Browse files

[LMS-2407] allow the "client.api.v1.DataSet" objects to be used from the screening facade too

SVN: 22270
parent 2d0ff9dd
No related branches found
No related tags found
No related merge requests found
...@@ -24,7 +24,6 @@ import java.util.HashMap; ...@@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.common.exceptions.InvalidSessionException; 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.dss.generic.shared.api.v1.FileInfoDssDTO;
import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections; 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; ...@@ -36,7 +35,9 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.Connections;
*/ */
public class DataSet 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; private ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet metadata;
...@@ -49,11 +50,12 @@ public class DataSet ...@@ -49,11 +50,12 @@ public class DataSet
* @param metadata The metadata. May be null if not available at construction time. * @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. * @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, ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet metadata,
IDataSetDss dataSetDss) IDataSetDss dataSetDss)
{ {
this.facade = facade; this.facade = facade;
this.dssComponent = dssComponent;
this.metadata = metadata; this.metadata = metadata;
this.dataSetDss = dataSetDss; this.dataSetDss = dataSetDss;
...@@ -228,7 +230,7 @@ public class DataSet ...@@ -228,7 +230,7 @@ public class DataSet
// lazily initialize the ivar. // lazily initialize the ivar.
if (null == dataSetDss) if (null == dataSetDss)
{ {
dataSetDss = facade.getDataSetDss(getMetadata().getCode()); dataSetDss = dssComponent.getDataSet(getMetadata().getCode());
} }
return dataSetDss; return dataSetDss;
} }
...@@ -238,10 +240,13 @@ public class DataSet ...@@ -238,10 +240,13 @@ public class DataSet
*/ */
private ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet getMetadata() private ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet getMetadata()
{ {
// lazily initialize the ivar.
if (null == metadata) if (null == metadata)
{ {
metadata = facade.tryRawDataSet(dataSetDss.getCode()); DataSet dataSetWithMetaData = facade.getDataSet(dataSetDss.getCode());
if (dataSetWithMetaData != null)
{
metadata = dataSetWithMetaData.getMetadata();
}
} }
return metadata; return metadata;
} }
......
...@@ -258,23 +258,6 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade ...@@ -258,23 +258,6 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade
return convertDataSets(service.searchForDataSets(sessionToken, searchCriteria)); 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) public List<DataSet> listDataSetsForExperiments(final List<String> experimentIdentifiers)
throws EnvironmentFailureException throws EnvironmentFailureException
{ {
...@@ -335,7 +318,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade ...@@ -335,7 +318,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade
throws EnvironmentFailureException throws EnvironmentFailureException
{ {
IDataSetDss dataSetDss = dssComponent.putDataSet(newDataset, dataSetFile); 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) public List<ValidationError> validateDataSet(NewDataSetDTO newDataset, File dataSetFile)
...@@ -449,7 +432,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade ...@@ -449,7 +432,7 @@ public class OpenbisServiceFacade implements IOpenbisServiceFacade
ArrayList<DataSet> convertedDataSets = new ArrayList<DataSet>(internalDataSets.size()); ArrayList<DataSet> convertedDataSets = new ArrayList<DataSet>(internalDataSets.size());
for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet dataSet : internalDataSets) 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); convertedDataSets.add(converted);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment