@Override public FileVisitResult postVisitDirectory(Path dir, IOException e) { if (dir.equals(current_root)) { projectRoot.addSourceRoot(dir); typeSolver.add(new JavaParserTypeSolver(current_root.toFile())); current_root = null; } return CONTINUE; } });
Optional<CompilationUnit> compilationUnit = parse(srcFile); if (compilationUnit.isPresent()) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit.get(), typeName.toString()); List<CompilationUnit> compilationUnits = parseDirectory(srcFile.getParent()); for (CompilationUnit compilationUnit : compilationUnits) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit, typeName.toString());
@Override public SymbolReference<ResolvedReferenceTypeDeclaration> tryToSolveType(String name) { // TODO support enums // TODO support interfaces try { return foundTypes.get(name, () -> { SymbolReference<ResolvedReferenceTypeDeclaration> result = tryToSolveTypeUncached(name); if (result.isSolved()) { return SymbolReference.solved(result.getCorrespondingDeclaration()); } return result; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
private List<CompilationUnit> parseDirectory(Path srcDirectory, boolean recursively) { try { return parsedDirectories.get(srcDirectory.toAbsolutePath(), () -> { List<CompilationUnit> units = new ArrayList<>(); if(Files.exists(srcDirectory)) { try (DirectoryStream<Path> srcDirectoryStream = Files.newDirectoryStream(srcDirectory)) { srcDirectoryStream .forEach(file -> { if (file.getFileName().toString().toLowerCase().endsWith(".java")) { parse(file).ifPresent(units::add); } else if (recursively && file.toFile().isDirectory()) { units.addAll(parseDirectoryRecursively(file)); } }); } } return units; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
/** * Note that this parse only files directly contained in this directory. * It does not traverse recursively all children directory. */ private List<CompilationUnit> parseDirectory(Path srcDirectory) { return parseDirectory(srcDirectory, false); }
private List<CompilationUnit> parseDirectory(File srcDirectory) { try { return parsedDirectories.get(srcDirectory.getAbsolutePath(), () -> { List<CompilationUnit> units = new ArrayList<>(); File[] files = srcDirectory.listFiles(); if (files != null) { for (File file : files) { if (file.getName().toLowerCase().endsWith(".java")) { Optional<CompilationUnit> unit = parse(file); if (unit.isPresent()) { units.add(unit.get()); } } } } return units; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
private List<CompilationUnit> parseDirectoryRecursively(Path srcDirectory) { return parseDirectory(srcDirectory, true); }
private List<CompilationUnit> parseDirectory(File srcDirectory) { try { return parsedDirectories.get(srcDirectory.getAbsolutePath(), () -> { List<CompilationUnit> units = new ArrayList<>(); File[] files = srcDirectory.listFiles(); if (files != null) { for (File file : files) { if (file.getName().toLowerCase().endsWith(".java")) { Optional<CompilationUnit> unit = parse(file); if (unit.isPresent()) { units.add(unit.get()); } } } } return units; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
public static void main(String[] args) throws FileNotFoundException, ParseException { TypeSolver typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(new File("java-symbol-solver-examples/src/main/resources/someproject"))); CompilationUnit agendaCu = JavaParser.parse(new FileInputStream(new File("java-symbol-solver-examples/src/main/resources/someproject/me/tomassetti/Agenda.java"))); agendaCu.accept(new TypeCalculatorVisitor(), JavaParserFacade.get(typeSolver)); }
Optional<CompilationUnit> compilationUnit = parse(srcFile); if (compilationUnit.isPresent()) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit.get(), typeName); List<CompilationUnit> compilationUnits = parseDirectory(srcFile.getParentFile()); for (CompilationUnit compilationUnit : compilationUnits) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit, typeName);
@Override public SymbolReference<ResolvedReferenceTypeDeclaration> tryToSolveType(String name) { // TODO support enums // TODO support interfaces try { return foundTypes.get(name, () -> { SymbolReference<ResolvedReferenceTypeDeclaration> result = tryToSolveTypeUncached(name); if (result.isSolved()) { return SymbolReference.solved(result.getCorrespondingDeclaration()); } return result; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
public static void main(String[] args) throws IOException, ParseException { File src = new File("/home/federico/repos/javaparser/javaparser-core/src/main/java"); CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); combinedTypeSolver.add(new JavaParserTypeSolver(src)); combinedTypeSolver.add(new JavaParserTypeSolver(new File("/home/federico/repos/javaparser/javaparser-core/target/generated-sources/javacc"))); SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor(); sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver); sourceFileInfoExtractor.solve(src); System.out.println("OK " + sourceFileInfoExtractor.getOk()); System.out.println("KO " + sourceFileInfoExtractor.getKo()); System.out.println("UNSUPPORTED " + sourceFileInfoExtractor.getUnsupported()); }
Optional<CompilationUnit> compilationUnit = parse(srcFile); if (compilationUnit.isPresent()) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit.get(), typeName); List<CompilationUnit> compilationUnits = parseDirectory(srcFile.getParentFile()); for (CompilationUnit compilationUnit : compilationUnits) { Optional<com.github.javaparser.ast.body.TypeDeclaration<?>> astTypeDeclaration = Navigator.findType(compilationUnit, typeName);
@Override public SymbolReference<ResolvedReferenceTypeDeclaration> tryToSolveType(String name) { // TODO support enums // TODO support interfaces try { return foundTypes.get(name, () -> { SymbolReference<ResolvedReferenceTypeDeclaration> result = tryToSolveTypeUncached(name); if (result.isSolved()) { return SymbolReference.solved(result.getCorrespondingDeclaration()); } return result; }); } catch (ExecutionException e) { throw new RuntimeException(e); } }
@Before public void setup() throws IOException { File srcDir = adaptPath(new File("src/test/resources/issue144")); typeSolver = new JavaParserTypeSolver(srcDir); }
@Before public void setup() throws IOException { typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(adaptPath(new File("src/test/resources/issue113")))); }
private static TypeSolver typeSolver() { CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); combinedTypeSolver.add(new JavaParserTypeSolver(src)); combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-generated-sources")))); return combinedTypeSolver; }
@Before public void setup() throws IOException { File srcDir = adaptPath(new File("src/test/resources/issue128")); typeSolver = new CombinedTypeSolver(new ReflectionTypeSolver(), new JavaParserTypeSolver(srcDir)); }
@Before public void setup() { File srcNewCode = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core")); CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver(); combinedTypeSolverNewCode.add(new ReflectionTypeSolver()); combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode)); combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-generated-sources")))); typeSolver = combinedTypeSolverNewCode; }
@Before public void setup() { File srcNewCode = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core")); CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver(); combinedTypeSolverNewCode.add(new ReflectionTypeSolver()); combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode)); combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-generated-sources")))); typeSolver = combinedTypeSolverNewCode; }