Class JavaParserFacade
- java.lang.Object
-
- com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade
-
public class JavaParserFacade extends Object
Class to be used by final users to solve symbols for JavaParser ASTs.- Author:
- Federico Tomassetti
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ResolvedTypeclassToResolvedType(Class<?> clazz)Deprecated.instead consider SymbolSolver.classToResolvedType(Classstatic voidclearInstances()This method is used to clear internal caches for the sake of releasing memory.ResolvedTypeconvert(Type type, Node node)ResolvedTypeconvert(Type type, Context context)ResolvedTypeconvertToUsage(Type type)Convert aTypeinto the correspondingResolvedType.protected ResolvedTypeconvertToUsage(Type type, Context context)Convert aTypeinto the correspondingResolvedType.protected TypeDeclaration<?>findContainingTypeDecl(Node node)Where a node has an interface/class/enum declaration as its ancestor, return the nearest one.protected NodefindContainingTypeDeclOrObjectCreationExpr(Node node)Where a node has an interface/class/enum declaration -- or an object creation expression (anonymous inner class) -- as its ancestor, return the nearest one.protected NodefindContainingTypeDeclOrObjectCreationExpr(Node node, String className)Where a node has an interface/class/enum declaration -- or an object creation expression in an inner class references an outer class -- as its ancestor, return the declaration corresponding to the class name specified.static JavaParserFacadeget(TypeSolver typeSolver)Note that the addition of the modifiersynchronizedis specific and directly in response to issue #2668.protected ResolvedTypegetBinaryTypeConcrete(Node left, Node right, boolean solveLambdas, BinaryExpr.Operator operator)SolvergetSymbolSolver()ResolvedTypegetType(Node node)Get the type associated with the node.ResolvedTypegetType(Node node, boolean solveLambdas)ResolvedReferenceTypeDeclarationgetTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration)ResolvedReferenceTypeDeclarationgetTypeDeclaration(TypeDeclaration<?> typeDeclaration)ResolvedReferenceTypeDeclarationgetTypeDeclaration(Node node)ResolvedTypegetTypeOfThisIn(Node node)"this" inserted in the given point, which type would have?TypeSolvergetTypeSolver()SymbolReference<ResolvedAnnotationDeclaration>solve(AnnotationExpr annotationExpr)SymbolReference<? extends ResolvedValueDeclaration>solve(Expression expr)SymbolReference<ResolvedValueDeclaration>solve(FieldAccessExpr fieldAccessExpr)SymbolReference<ResolvedMethodDeclaration>solve(MethodCallExpr methodCallExpr)SymbolReference<ResolvedMethodDeclaration>solve(MethodCallExpr methodCallExpr, boolean solveLambdas)Given a method call find out to which method declaration it corresponds.SymbolReference<ResolvedMethodDeclaration>solve(MethodReferenceExpr methodReferenceExpr)SymbolReference<ResolvedMethodDeclaration>solve(MethodReferenceExpr methodReferenceExpr, boolean solveLambdas)Given a method reference find out to which method declaration it corresponds.SymbolReference<? extends ResolvedValueDeclaration>solve(NameExpr nameExpr)SymbolReference<ResolvedConstructorDeclaration>solve(ObjectCreationExpr objectCreationExpr)SymbolReference<ResolvedConstructorDeclaration>solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas)Given a constructor call find out to which constructor declaration it corresponds.SymbolReference<? extends ResolvedValueDeclaration>solve(SimpleName nameExpr)SymbolReference<ResolvedTypeDeclaration>solve(ThisExpr node)SymbolReference<ResolvedConstructorDeclaration>solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt)SymbolReference<ResolvedConstructorDeclaration>solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas)MethodUsagesolveMethodAsUsage(MethodCallExpr call)protected MethodUsagetoMethodUsage(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes)
-
-
-
Method Detail
-
get
public static JavaParserFacade get(TypeSolver typeSolver)
Note that the addition of the modifiersynchronizedis specific and directly in response to issue #2668.
This MUST NOT be misinterpreted as a signal that JavaParser is safe to use within a multi-threaded environment.
Additional discussion and context from a user attempting multithreading can be found within issue #2671 .
-
clearInstances
public static void clearInstances()
This method is used to clear internal caches for the sake of releasing memory.
-
getTypeSolver
public TypeSolver getTypeSolver()
-
getSymbolSolver
public Solver getSymbolSolver()
-
solve
public SymbolReference<? extends ResolvedValueDeclaration> solve(NameExpr nameExpr)
-
solve
public SymbolReference<? extends ResolvedValueDeclaration> solve(SimpleName nameExpr)
-
solve
public SymbolReference<? extends ResolvedValueDeclaration> solve(Expression expr)
-
solve
public SymbolReference<ResolvedMethodDeclaration> solve(MethodCallExpr methodCallExpr)
-
solve
public SymbolReference<ResolvedMethodDeclaration> solve(MethodReferenceExpr methodReferenceExpr)
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr)
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt)
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas)
-
solve
public SymbolReference<ResolvedTypeDeclaration> solve(ThisExpr node)
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas)
Given a constructor call find out to which constructor declaration it corresponds.
-
solve
public SymbolReference<ResolvedMethodDeclaration> solve(MethodCallExpr methodCallExpr, boolean solveLambdas)
Given a method call find out to which method declaration it corresponds.
-
solve
public SymbolReference<ResolvedMethodDeclaration> solve(MethodReferenceExpr methodReferenceExpr, boolean solveLambdas)
Given a method reference find out to which method declaration it corresponds.
-
solve
public SymbolReference<ResolvedAnnotationDeclaration> solve(AnnotationExpr annotationExpr)
-
solve
public SymbolReference<ResolvedValueDeclaration> solve(FieldAccessExpr fieldAccessExpr)
-
getType
public ResolvedType getType(Node node)
Get the type associated with the 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 accommodate this usage and avoid confusion this method return the type itself when used on the name of type.
-
getType
public ResolvedType getType(Node node, boolean solveLambdas)
-
toMethodUsage
protected MethodUsage toMethodUsage(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes)
-
getBinaryTypeConcrete
protected ResolvedType getBinaryTypeConcrete(Node left, Node right, boolean solveLambdas, BinaryExpr.Operator operator)
-
findContainingTypeDecl
protected TypeDeclaration<?> findContainingTypeDecl(Node node)
Where a node has an interface/class/enum declaration as its ancestor, return the nearest one.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 ... }- Parameters:
node- The Node whose ancestors will be traversed,- Returns:
- The first class/interface/enum declaration in the Node's ancestry.
-
findContainingTypeDeclOrObjectCreationExpr
protected Node findContainingTypeDeclOrObjectCreationExpr(Node node)
Where a node has an interface/class/enum declaration -- or an object creation expression (anonymous inner class) -- as its ancestor, return the nearest one.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 ... } }
- Parameters:
node- The Node whose ancestors will be traversed,- Returns:
- The first class/interface/enum declaration -- or object creation expression (anonymous inner class) -- in the Node's ancestry.
-
findContainingTypeDeclOrObjectCreationExpr
protected Node findContainingTypeDeclOrObjectCreationExpr(Node node, String className)
Where a node has an interface/class/enum declaration -- or an object creation expression in an inner class references an outer class -- as its ancestor, return the declaration corresponding to the class name specified.
-
convertToUsage
protected ResolvedType convertToUsage(Type type, Context context)
Convert aTypeinto the correspondingResolvedType.- Parameters:
type- The type to be converted.context- The current context.- Returns:
- The type resolved.
-
convertToUsage
public ResolvedType convertToUsage(Type type)
Convert aTypeinto the correspondingResolvedType.- Parameters:
type- The type to be converted.- Returns:
- The type resolved.
-
convert
public ResolvedType convert(Type type, Node node)
-
convert
public ResolvedType convert(Type type, Context context)
-
solveMethodAsUsage
public MethodUsage solveMethodAsUsage(MethodCallExpr call)
-
getTypeDeclaration
public ResolvedReferenceTypeDeclaration getTypeDeclaration(Node node)
-
getTypeDeclaration
public ResolvedReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration)
-
getTypeOfThisIn
public ResolvedType getTypeOfThisIn(Node node)
"this" inserted in the given point, which type would have?
-
getTypeDeclaration
public ResolvedReferenceTypeDeclaration getTypeDeclaration(TypeDeclaration<?> typeDeclaration)
-
classToResolvedType
@Deprecated public ResolvedType classToResolvedType(Class<?> clazz)
Deprecated.instead consider SymbolSolver.classToResolvedType(Class> clazz)Convert aClassinto the correspondingResolvedType.- Parameters:
clazz- The class to be converted.- Returns:
- The class resolved.
-
-