From 354773c7727dfde5a6393e0fc4e42b35fe5df48e Mon Sep 17 00:00:00 2001 From: Daan Schipper Date: Mon, 19 Feb 2018 14:24:19 +0100 Subject: [PATCH] rename of class, added some comments and added one final check for skipping a directory only when the root is succesfully added to known roots --- ...ourceRoot.java => SymbolSolverQuickSetup.java} | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) rename javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/{SymbolSourceRoot.java => SymbolSolverQuickSetup.java} (90%) diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSourceRoot.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetup.java similarity index 90% rename from javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSourceRoot.java rename to javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetup.java index 386c5815d0..a9287d7d7b 100644 --- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSourceRoot.java +++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/utils/SymbolSolverQuickSetup.java @@ -46,14 +46,18 @@ import static java.nio.file.FileVisitResult.CONTINUE; import static java.nio.file.FileVisitResult.SKIP_SIBLINGS; -public class SymbolSourceRoot { +/** + * Utility class to add all jars and roots of java files of the provided path to a TypeSolver instance. + * It traverses the file directory tree and adds all files ending in either .java or .jar. + */ +public class SymbolSolverQuickSetup { private static Logger logger = Logger.getLogger(JavaParserFacade.class.getCanonicalName()); private final Path root; private CombinedTypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(false)); - public SymbolSourceRoot(Path root) { + public SymbolSolverQuickSetup(Path root) { assertNotNull(root); if (!Files.isDirectory(root)) { throw new IllegalArgumentException("Only directories are allowed as root path!"); @@ -105,9 +109,10 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attr) throws Fil .map(CompilationUnit.Storage::getSourceRoot); if (root.isPresent()) { typeSolver.add(new JavaParserTypeSolver(root.get().toFile())); - roots.add(root.get()); - logger.log(Level.FINE, "Added dir " + root.get() + " to the TypeSolver"); - return SKIP_SIBLINGS; + if (roots.add(root.get())) { + logger.log(Level.FINE, "Added dir " + root.get() + " to the TypeSolver"); + return SKIP_SIBLINGS; + } } } catch (ParseProblemException e) { logger.log(Level.WARNING, "Unable to parse file " + file, e);