From 67e8011712d85ab41f47cc37e7a9f65af406551c Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Mon, 11 Oct 2010 08:02:41 +0000 Subject: [PATCH] improve: in loadImages(), avoid calling openbis.listImageDatasets() and openbis.listImageMetadata() twice SVN: 18232 --- screening/source/java/OpenBISScreeningML.java | 33 ++++++------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/screening/source/java/OpenBISScreeningML.java b/screening/source/java/OpenBISScreeningML.java index 7f08227b340..650b3971ded 100644 --- a/screening/source/java/OpenBISScreeningML.java +++ b/screening/source/java/OpenBISScreeningML.java @@ -519,37 +519,24 @@ public class OpenBISScreeningML { throw new RuntimeException("No plate with that code found."); } + final List<ImageDatasetReference> imageDatasets = + openbis.listImageDatasets(Arrays.asList(plateId)); + final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets); + if (meta.isEmpty()) + { + return new Object[][][] + { new Object[0][], new Object[0][] }; + } final List<String> imageChannels; if (channels == null || channels.length == 0) { - final List<ImageDatasetReference> imageDatasets = - openbis.listImageDatasets(Arrays.asList(plateId)); - final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets); - if (meta.isEmpty()) - { - return new Object[][][] - { new Object[0][], new Object[0][] }; - } imageChannels = getChannelCodes(meta); } else { imageChannels = Arrays.asList(channels); } - final List<ImageDatasetReference> imageDatasets = - openbis.listImageDatasets(Arrays.asList(plateId)); - if (imageDatasets.isEmpty()) - { - return new Object[][][] - { new Object[0][], new Object[0][] }; - } final List<PlateImageReference> imageReferences = - new ArrayList<PlateImageReference>(imageDatasets.size()); - final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets); - if (meta.isEmpty()) - { - return new Object[][][] - { new Object[0][], new Object[0][] }; - } + new ArrayList<PlateImageReference>(imageDatasets.size()); final List<File> imageFiles = new ArrayList<File>(imageDatasets.size() * imageChannels.size() * meta.get(0).getNumberOfTiles()); @@ -625,7 +612,7 @@ public class OpenBISScreeningML { return imageRefToFileMap.get(imageReference); } - }); + }, false); } finally { closeOutputStreams(imageRefToFileMap.values()); -- GitLab