public CombinedTypeSolver(TypeSolver... elements) { for (TypeSolver el : elements) { add(el); } }
public CombinedTypeSolver(TypeSolver... elements) { for (TypeSolver el : elements) { add(el); } }
/** @see #exceptionHandler */ public CombinedTypeSolver(Predicate<Exception> exceptionHandler, TypeSolver... elements) { setExceptionHandler(exceptionHandler); for (TypeSolver el : elements) { add(el); } }
@Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (javaMatcher.matches(file)) { if (current_root == null || !file.startsWith(current_root)) { current_root = getRoot(file).orElse(null); } } else if (jarMatcher.matches(file)) { typeSolver.add(new JarTypeSolver(file.toString())); } return CONTINUE; }
@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; } });
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; }
private CombinedTypeSolver createTypeSolver() { File src = adaptPath(new File("src/test/resources")); CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); combinedTypeSolver.add(new JavaParserTypeSolver(src)); return combinedTypeSolver; }
@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; }
@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() { CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/differentiate_dot_expressions")))); typeSolver = combinedTypeSolver; }
@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")))); typeSolverNewCode = combinedTypeSolverNewCode; symbolSolver = new SymbolSolver(typeSolverNewCode); }
private SourceFileInfoExtractor getSourceFileInfoExtractor() { CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); combinedTypeSolver.add(new JavaParserTypeSolver(src)); combinedTypeSolver.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_src/generated")))); SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor(); sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver); sourceFileInfoExtractor.setPrintFileName(false); return sourceFileInfoExtractor; }
private static SourceFileInfoExtractor getSourceFileInfoExtractor() { 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")))); SourceFileInfoExtractor sourceFileInfoExtractor = new SourceFileInfoExtractor(); sourceFileInfoExtractor.setTypeSolver(combinedTypeSolver); sourceFileInfoExtractor.setPrintFileName(false); sourceFileInfoExtractor.setVerbose(true); return sourceFileInfoExtractor; }
@Test public void testIssue() throws FileNotFoundException { File src = adaptPath(new File("src/test/resources/recursion-issue")); CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new JavaParserTypeSolver(src)); combinedTypeSolver.add(new ReflectionTypeSolver()); CompilationUnit agendaCu = JavaParser.parse(adaptPath(new File("src/test/resources/recursion-issue/Usage.java"))); MethodCallExpr foo = Navigator.findMethodCall(agendaCu, "foo"); assert foo != null; JavaParserFacade.get(combinedTypeSolver).getType(foo); }
@Test public void solveSymbolAsValueReferringToStaticallyImportedValue() throws ParseException, IOException { CompilationUnit cu = parseSample("CompilationUnitSymbols"); Context context = new CompilationUnitContext(cu, typeSolver); CombinedTypeSolver typeSolver = new CombinedTypeSolver(); typeSolver.add(new ReflectionTypeSolver()); typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar"))); Optional<Value> ref = context.solveSymbolAsValue("out", typeSolver); assertEquals(true, ref.isPresent()); assertEquals("java.io.PrintStream", ref.get().getType().describe()); }
@Test public void solveSymbolAsValueReferringToStaticallyImportedUsingAsteriskValue() throws ParseException, IOException { CompilationUnit cu = parseSample("CompilationUnitSymbols"); Context context = new CompilationUnitContext(cu, typeSolver); CombinedTypeSolver typeSolver = new CombinedTypeSolver(); typeSolver.add(new ReflectionTypeSolver()); typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar"))); Optional<Value> ref = context.solveSymbolAsValue("err", typeSolver); assertEquals(true, ref.isPresent()); assertEquals("java.io.PrintStream", ref.get().getType().describe()); }
@Test public void solveSymbolReferringToStaticallyImportedUsingAsteriskValue() throws ParseException, IOException { CompilationUnit cu = parseSample("CompilationUnitSymbols"); Context context = new CompilationUnitContext(cu, typeSolver); CombinedTypeSolver typeSolver = new CombinedTypeSolver(); typeSolver.add(new ReflectionTypeSolver()); typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar"))); SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("err", typeSolver); assertEquals(true, ref.isSolved()); assertEquals("java.io.PrintStream", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName()); }
@Test public void solveSymbolReferringToStaticallyImportedValue() throws ParseException, IOException { CompilationUnit cu = parseSample("CompilationUnitSymbols"); Context context = new CompilationUnitContext(cu, typeSolver); CombinedTypeSolver typeSolver = new CombinedTypeSolver(); typeSolver.add(new ReflectionTypeSolver()); typeSolver.add(new JarTypeSolver(adaptPath("src/test/resources/junit-4.8.1.jar"))); SymbolReference<? extends ResolvedValueDeclaration> ref = context.solveSymbol("out", typeSolver); assertEquals(true, ref.isSolved()); assertEquals("java.io.PrintStream", ref.getCorrespondingDeclaration().getType().asReferenceType().getQualifiedName()); }
@Test public void usingAnonymousSuperClassInnerType() throws Exception { CompilationUnit cu = parseSample("AnonymousClassDeclarations"); ClassOrInterfaceDeclaration aClass = Navigator.demandClass(cu, "AnonymousClassDeclarations"); MethodDeclaration method = Navigator.demandMethod(aClass, "fooBar4"); MethodCallExpr methodCall = Navigator.findMethodCall(method, "toString"); CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); combinedTypeSolver.add(new ReflectionTypeSolver()); MethodUsage methodUsage = JavaParserFacade.get(combinedTypeSolver).solveMethodAsUsage(methodCall); assertThat(methodUsage.getQualifiedSignature(), is("java.lang.Enum.toString()")); }