public class JavaParserFacade extends Object
public TypeSolver getTypeSolver()
public SymbolSolver getSymbolSolver()
public static JavaParserFacade get(TypeSolver typeSolver)
synchronized
is specific and directly in response to issue #2668.
public static void clearInstances()
protected static ResolvedType solveGenericTypes(ResolvedType type, Context context)
public SymbolReference<? extends ResolvedValueDeclaration> solve(NameExpr nameExpr)
public SymbolReference<? extends ResolvedValueDeclaration> solve(SimpleName nameExpr)
public SymbolReference<? extends ResolvedValueDeclaration> solve(Expression expr)
public SymbolReference<ResolvedMethodDeclaration> solve(MethodCallExpr methodCallExpr)
public SymbolReference<ResolvedMethodDeclaration> solve(MethodReferenceExpr methodReferenceExpr)
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr)
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt)
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas)
public SymbolReference<ResolvedTypeDeclaration> solve(ThisExpr node)
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas)
public SymbolReference<ResolvedMethodDeclaration> solve(MethodCallExpr methodCallExpr, boolean solveLambdas)
public SymbolReference<ResolvedMethodDeclaration> solve(MethodReferenceExpr methodReferenceExpr, boolean solveLambdas)
public SymbolReference<ResolvedAnnotationDeclaration> solve(AnnotationExpr annotationExpr)
public SymbolReference<ResolvedValueDeclaration> solve(FieldAccessExpr fieldAccessExpr)
public ResolvedType getType(Node node)
This method was originally intended to get the type of a value: any value has a type.
For example:
int foo(int a) { return a; // when getType is invoked on "a" it returns the type "int" }
Now, users started using also of names of types itself, which do not have a type.
For example:
class A { int foo(int a) { return A.someStaticField; // when getType is invoked on "A", which represents a class, it returns // the type "A" itself while it used to throw UnsolvedSymbolException }
To accomodate this usage and avoid confusion this method return the type itself when used on the name of type.
public ResolvedType getType(Node node, boolean solveLambdas)
protected MethodUsage toMethodUsage(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes)
protected ResolvedType getBinaryTypeConcrete(Node left, Node right, boolean solveLambdas, BinaryExpr.Operator operator)
protected TypeDeclaration<?> findContainingTypeDecl(Node node)
NOTE: See findContainingTypeDeclOrObjectCreationExpr(com.github.javaparser.ast.Node)
if wanting to include anonymous inner classes.
For example, these all return X:
public interface X { ... node here ... }
public class X { ... node here ... }
public enum X { ... node here ... }
node
- The Node whose ancestors will be traversed,protected Node findContainingTypeDeclOrObjectCreationExpr(Node node)
NOTE: See findContainingTypeDecl(com.github.javaparser.ast.Node)
if wanting to not include anonymous inner classes.
For example, these all return X:
public interface X { ... node here ... }
public class X { ... node here ... }
public enum X { ... node here ... }
new ActionListener() {
... node here ...
public void actionPerformed(ActionEvent e) {
... or node here ...
}
}
node
- The Node whose ancestors will be traversed,public ResolvedType convertToUsageVariableType(VariableDeclarator var)
public ResolvedType convertToUsage(Type type, Node context)
public ResolvedType convertToUsage(Type type)
protected ResolvedType convertToUsage(Type type, Context context)
public ResolvedType convert(Type type, Node node)
public ResolvedType convert(Type type, Context context)
public MethodUsage solveMethodAsUsage(MethodCallExpr call)
public ResolvedReferenceTypeDeclaration getTypeDeclaration(Node node)
public ResolvedReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration)
public ResolvedType getTypeOfThisIn(Node node)
public ResolvedReferenceTypeDeclaration getTypeDeclaration(TypeDeclaration<?> typeDeclaration)
public ResolvedType classToResolvedType(Class<?> clazz)
Copyright © 2007–2020. All rights reserved.