Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip registration for files and ignore files with insufficient rights #15

Merged
merged 7 commits into from
May 29, 2024
24 changes: 22 additions & 2 deletions src/main/java/life/qbic/data/processing/scanner/Scanner.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,16 +102,36 @@ public void run() {
private List<RegistrationRequest> detectDataForRegistration() {
return userProcessDirectories.parallelStream()
.map(Path::toFile)
.filter(this::matchesAccessRightsCriteria)
.filter(this::matchesRegistrationCriteria)
.map(file -> createRequests(file.listFiles(), file.toPath())).flatMap(
Collection::stream).toList();
}

private boolean matchesAccessRightsCriteria(File file) {
if (!file.canWrite()) {
log.error("Cannot write to file '{}'", file);
return false;
}
if (!file.canExecute()) {
log.error("Cannot execute file '{}'", file);
return false;
}
return true;
}

private boolean matchesRegistrationCriteria(File file) {
if (file.isHidden()) {
return false;
}
return file.isDirectory();
}

private List<RegistrationRequest> createRequests(File[] files, Path userDirectory) {
if (files == null || files.length == 0) {
return new ArrayList<>();
}
return Arrays.stream(files).filter(file -> !file.isHidden())
.map(file -> createRequest(file, userDirectory)).toList();
return Arrays.stream(files).map(file -> createRequest(file, userDirectory)).toList();
}

private RegistrationRequest createRequest(File file, Path userDirectory) {
Expand Down
Loading