From 79aab39d283ec3e6492d2fb79af6099521e39595 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Mon, 4 Sep 2017 21:21:48 +0200 Subject: [PATCH] refactored code to use stream collector grouping instead of manual code --- .../boot/java/utils/AnnotationIndexer.java | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/AnnotationIndexer.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/AnnotationIndexer.java index 0abe057d5..7312b79cd 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/AnnotationIndexer.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/AnnotationIndexer.java @@ -16,9 +16,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import java.util.stream.Stream; import org.eclipse.jdt.core.JavaCore; @@ -69,22 +69,11 @@ public class AnnotationIndexer { public void scanFiles(File directory) { try { - Path[] javaFiles = Files.walk(directory.toPath()) + Map> projects = Files.walk(directory.toPath()) .filter(Files::isRegularFile) .filter(path -> path.getFileName().toString().endsWith(".java")) - .toArray(Path[]::new); - - Map> projects = new HashMap<>(); - for (Path javaFile : javaFiles) { - IJavaProject project = projectFinder.find(javaFile.toFile()); - if (project != null) { - if (!projects.containsKey(project)) { - projects.put(project, new ArrayList<>()); - } - - projects.get(project).add(javaFile.toAbsolutePath().toString()); - } - } + .map(path -> path.toAbsolutePath().toString()) + .collect(Collectors.groupingBy((javaFile) -> projectFinder.find(new File(javaFile)))); projects.forEach((project, files) -> scanProject(project, files.toArray(new String[0])));