From ae3aacf160f4788506657f259e3a3a8b0af7c1e8 Mon Sep 17 00:00:00 2001 From: gpawel <gpawel> Date: Wed, 9 Nov 2011 16:49:02 +0000 Subject: [PATCH] bugfix: empty containers shouldn't be treated as not empty SVN: 23621 --- .../screening/server/logic/ScreeningUtils.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java index 889e927fa8d..2c582847ed9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningUtils.java @@ -168,7 +168,8 @@ public class ScreeningUtils final List<T> chosenDatasets = new ArrayList<T>(); for (T dataset : typeMatchingDatasets) { - if (isContainerMatching(dataset, datasetTypeCodePatterns) == false) + if (isContainerMatching(dataset, datasetTypeCodePatterns) == false + && isNotEmpty(dataset)) { chosenDatasets.add(dataset); } @@ -190,6 +191,17 @@ public class ScreeningUtils return container != null && isOneOfTypesMatching(container, datasetTypeCodePatterns); } + private static boolean isNotEmpty(ExternalData dataset) + { + return dataset.isContainer() == false + || dataset.tryGetAsContainerDataSet().getContainedDataSets().size() > 0; + } + + private static <T extends DataPE> boolean isNotEmpty(T dataset) + { + return dataset.isContainer() == false || dataset.getContainedDataSets().size() > 0; + } + /** chooses datasets of unknown types */ public static <T extends DataPE> List<T> filterUnknownDatasets(List<T> datasets) { @@ -267,7 +279,8 @@ public class ScreeningUtils String typePattern) { return isOneOfTypesMatching(externalData, typePattern) - && isContainerMatching(externalData, typePattern) == false; + && isContainerMatching(externalData, typePattern) == false + && isNotEmpty(externalData); } public static boolean isRawHcsImageDataset(ExternalData externalData) -- GitLab