Skip to content
Snippets Groups Projects
Commit e4259972 authored by felmer's avatar felmer
Browse files

improve performance of gathering parent samples

SVN: 18166
parent faeb84e5
No related branches found
No related tags found
No related merge requests found
...@@ -17,8 +17,10 @@ ...@@ -17,8 +17,10 @@
package ch.systemsx.cisd.openbis.plugin.phosphonetx.server.business; package ch.systemsx.cisd.openbis.plugin.phosphonetx.server.business;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.exceptions.UserFailureException;
import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister;
...@@ -59,15 +61,21 @@ class SampleProvider implements ISampleProvider ...@@ -59,15 +61,21 @@ class SampleProvider implements ISampleProvider
ListOrSearchSampleCriteria criteria) ListOrSearchSampleCriteria criteria)
{ {
List<Sample> list = lister.list(criteria); List<Sample> list = lister.list(criteria);
Set<Long> sampleIDs = new HashSet<Long>();
for (Sample sample : list) for (Sample sample : list)
{ {
samplesByPermIDs.put(sample.getPermId(), sample); samplesByPermIDs.put(sample.getPermId(), sample);
ListSampleCriteria criteria2 = sampleIDs.add(sample.getId());
ListSampleCriteria.createForChild(new TechId(sample.getId()));
ListOrSearchSampleCriteria criteria3 = new ListOrSearchSampleCriteria(criteria2);
criteria3.setEnrichDependentSamplesWithProperties(true);
gatherSamplesAndAncestorsRecursively(lister, criteria3);
} }
if (sampleIDs.isEmpty())
{
return;
}
ListSampleCriteria criteria2 =
ListSampleCriteria.createForChildren(sampleIDs);
ListOrSearchSampleCriteria criteria3 = new ListOrSearchSampleCriteria(criteria2);
criteria3.setEnrichDependentSamplesWithProperties(true);
gatherSamplesAndAncestorsRecursively(lister, criteria3);
} }
public Sample getSample(String permID) public Sample getSample(String permID)
......
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