From 037a27a13e24b82ff27f692ca6b83e6d7e8c98fb Mon Sep 17 00:00:00 2001 From: Sven F <9976560+sven1103@users.noreply.github.com> Date: Wed, 29 May 2024 15:03:26 +0200 Subject: [PATCH] Apply access right and registration filters for the dataset itself as well (#17) * Applies the access rights filter and registration policies also to the registration content * Update src/main/java/life/qbic/data/processing/scanner/Scanner.java Co-authored-by: Tobias Koch --------- Co-authored-by: Tobias Koch --- .../life/qbic/data/processing/scanner/Scanner.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/life/qbic/data/processing/scanner/Scanner.java b/src/main/java/life/qbic/data/processing/scanner/Scanner.java index c3b6f0a..33e358a 100644 --- a/src/main/java/life/qbic/data/processing/scanner/Scanner.java +++ b/src/main/java/life/qbic/data/processing/scanner/Scanner.java @@ -104,8 +104,16 @@ private List detectDataForRegistration() { .map(Path::toFile) .filter(this::matchesAccessRightsCriteria) .filter(this::matchesRegistrationCriteria) - .map(file -> createRequests(file.listFiles(), file.toPath())).flatMap( - Collection::stream).toList(); + .map(processDir -> createRequests( + applyFilterForProcessDir(processDir.listFiles()), + processDir.toPath())) + .flatMap(Collection::stream).toList(); + } + + private File[] applyFilterForProcessDir(File[] processDirContent) { + return Arrays.stream(Objects.requireNonNull(processDirContent)) + .filter(this::matchesAccessRightsCriteria) + .filter(this::matchesRegistrationCriteria).toArray(File[]::new); } private boolean matchesAccessRightsCriteria(File file) {