@Override public boolean isAbstract() { return !wrappedNode.getBody().isPresent(); }
@Override public boolean isAbstract() { return !wrappedNode.getBody().isPresent(); }
@Override public boolean isAbstract() { return !wrappedNode.getBody().isPresent(); }
@Override public void visit(final MethodDeclaration m, final Context ctx) { if (!script) { boolean mvc = m.getAnnotations().stream() .map(it -> it.getName().getName()) .filter(Route.METHODS::contains) .findFirst() .isPresent(); if (mvc) { nodes.add(Maps.immutableEntry(m, m.getBody())); } } }
@Test public void issue257() throws FileNotFoundException { String pathToSourceFile = adaptPath("src/test/resources/issue257/A.java.txt"); CompilationUnit cu = JavaParser.parse(new File(pathToSourceFile)); Statement statement = cu.getClassByName("A").get().getMethodsByName("run").get(0).getBody().get().getStatement(0); ExpressionStmt expressionStmt = (ExpressionStmt)statement; Expression expression = expressionStmt.getExpression(); JavaParserFacade.get(typeSolver).getType(expression); }
@Test(expected = UnsolvedSymbolException.class) public void issue144() throws ParseException { CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); Expression firstParameter = methodCallExpr.getArgument(0); JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); javaParserFacade.solve(firstParameter).isSolved(); }
@Test public void loopOnStaticallyImportedType() throws ParseException { CompilationUnit cu = parseSampleWithStandardExtension("issue128/foo/Issue128"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "JavaTest"); ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("test").get(0).getBody().get().getStatement(0); MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); assertEquals(false, javaParserFacade.solve(methodCallExpr).isSolved()); } }
@Test public void accessEnumMethodThroughThis() throws ParseException { CompilationUnit cu = parseSample("AccessEnumMemberThroughThis"); com.github.javaparser.ast.body.EnumDeclaration enumDecl = Navigator.demandEnum(cu, "AccessEnumMemberThroughThis"); MethodDeclaration method = Navigator.demandMethod(enumDecl, "getLabel2"); ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0); Expression expression = returnStmt.getExpression().get(); ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression); assertEquals("java.lang.String", ref.describe()); }
@Test public void solveMethodAccessThroughSuper() throws ParseException { CompilationUnit cu = parseSample("AccessThroughSuper"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessThroughSuper.SubClass"); MethodDeclaration method = Navigator.demandMethod(clazz, "methodTest"); ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0); Expression expression = returnStmt.getExpression().get(); ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression); assertEquals("java.lang.String", ref.describe()); }
@Test public void issue144WithReflectionTypeSolver() throws ParseException { CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); Expression firstParameter = methodCallExpr.getArgument(0); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver(true)); assertEquals(true, javaParserFacade.solve(firstParameter).isSolved()); }
@Test public void accessClassFieldThroughThis() throws ParseException { CompilationUnit cu = parseSample("AccessClassMemberThroughThis"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessClassMemberThroughThis"); MethodDeclaration method = Navigator.demandMethod(clazz, "getLabel2"); ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0); Expression expression = returnStmt.getExpression().get(); ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression); assertEquals("java.lang.String", ref.describe()); }
@Test public void accessFieldThroughSuper() throws ParseException { CompilationUnit cu = parseSample("AccessThroughSuper"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "AccessThroughSuper.SubClass"); MethodDeclaration method = Navigator.demandMethod(clazz, "fieldTest"); ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0); Expression expression = returnStmt.getExpression().get(); ResolvedType ref = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression); assertEquals("java.lang.String", ref.describe()); } }
@Test public void issue144WithCombinedTypeSolver() throws ParseException { CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); Expression firstParameter = methodCallExpr.getArgument(0); JavaParserFacade javaParserFacade = JavaParserFacade.get(new CombinedTypeSolver(typeSolver, new ReflectionTypeSolver(true))); assertEquals(true, javaParserFacade.solve(firstParameter).isSolved()); } }
@Test public void issue7() throws ParseException { CompilationUnit cu = parseSample("Generics_issue7"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection"); MethodDeclaration method = Navigator.demandMethod(clazz, "foo3"); ReturnStmt stmt = (ReturnStmt) method.getBody().get().getStatements().get(0); Expression expression = stmt.getExpression().get(); JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver()); ResolvedType type = javaParserFacade.getType(expression); assertEquals(true, type.isReferenceType()); assertEquals(List.class.getCanonicalName(), type.asReferenceType().getQualifiedName()); assertEquals("java.util.List<java.lang.Long>", type.describe()); }
@Test public void testSolveStaticallyImportedMemberType() throws ParseException { CompilationUnit cu = parseSample("Issue251"); ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Main"); TypeSolver typeSolver = new ReflectionTypeSolver(); JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); MethodDeclaration m = Navigator.demandMethod(cls, "bar"); ExpressionStmt stmt = (ExpressionStmt) m.getBody().get().getStatements().get(1); MethodCallExpr expression = (MethodCallExpr) stmt.getExpression(); Assert.assertNotNull(javaParserFacade.solve(expression)); } }
@Test public void typeDeclarationSuperClassImplicitlyIncludeObject() throws ParseException { CompilationUnit cu = parseSample("Issue18"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "Foo"); MethodDeclaration methodDeclaration = Navigator.demandMethod(clazz, "bar"); ExpressionStmt expr = (ExpressionStmt) methodDeclaration.getBody().get().getStatements().get(1); TypeSolver typeSolver = new ReflectionTypeSolver(); JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); ResolvedType type = javaParserFacade.getType(expr.getExpression()); assertEquals("java.lang.Object", type.describe()); } }
@Test public void issue235() throws ParseException { CompilationUnit cu = parseSample("Issue235"); ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Foo"); TypeSolver typeSolver = new ReflectionTypeSolver(); JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); MethodDeclaration m = Navigator.demandMethod(cls, this.method); ExpressionStmt stmt = (ExpressionStmt) m.getBody().get().getStatements().get(0); ObjectCreationExpr expression = (ObjectCreationExpr) stmt.getExpression(); Assert.assertNotNull(javaParserFacade.convertToUsage(expression.getType())); } }
@Test public void resolveUsageOfGenericFieldSimpleCase() throws ParseException { CompilationUnit cu = parseSample("Generics"); ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "SomeCollection"); MethodDeclaration method = Navigator.demandMethod(clazz, "foo1"); ExpressionStmt stmt = (ExpressionStmt) method.getBody().get().getStatements().get(0); Expression expression = stmt.getExpression(); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(expression); assertEquals(false, type.isTypeVariable()); assertEquals("java.lang.String", type.describe()); }
@Test public void resolveInheritedFieldReference() throws ParseException { CompilationUnit cu = parseSample("ReferencesToField"); com.github.javaparser.ast.body.ClassOrInterfaceDeclaration referencesToField = Navigator.demandClass(cu, "ReferencesToFieldExtendingClass"); MethodDeclaration method1 = Navigator.demandMethod(referencesToField, "method2"); ExpressionStmt stmt = (ExpressionStmt) method1.getBody().get().getStatements().get(0); AssignExpr assignExpr = (AssignExpr) stmt.getExpression(); SymbolSolver symbolSolver = new SymbolSolver(typeSolver); SymbolReference symbolReference = symbolSolver.solveSymbol("i", assignExpr.getTarget()); assertEquals(true, symbolReference.isSolved()); assertEquals("i", symbolReference.getCorrespondingDeclaration().getName()); assertEquals(true, symbolReference.getCorrespondingDeclaration().isField()); }