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 ResolvedType
classToResolvedType(Class<?> clazz)
Deprecated.instead consider SymbolSolver.classToResolvedType(Classstatic void
clearInstances()
This method is used to clear internal caches for the sake of releasing memory.ResolvedType
convert(Type type, Node node)
ResolvedType
convert(Type type, Context context)
ResolvedType
convertToUsage(Type type)
Convert aType
into the correspondingResolvedType
.protected ResolvedType
convertToUsage(Type type, Context context)
Convert aType
into the correspondingResolvedType
.protected TypeDeclaration<?>
findContainingTypeDecl(Node node)
Where a node has an interface/class/enum declaration as its ancestor, return the nearest one.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.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.static JavaParserFacade
get(TypeSolver typeSolver)
Note that the addition of the modifiersynchronized
is specific and directly in response to issue #2668.protected ResolvedType
getBinaryTypeConcrete(Node left, Node right, boolean solveLambdas, BinaryExpr.Operator operator)
Solver
getSymbolSolver()
ResolvedType
getType(Node node)
Get the type associated with the node.ResolvedType
getType(Node node, boolean solveLambdas)
ResolvedReferenceTypeDeclaration
getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration)
ResolvedReferenceTypeDeclaration
getTypeDeclaration(TypeDeclaration<?> typeDeclaration)
ResolvedReferenceTypeDeclaration
getTypeDeclaration(Node node)
ResolvedType
getTypeOfThisIn(Node node)
"this" inserted in the given point, which type would have?TypeSolver
getTypeSolver()
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)
MethodUsage
solveMethodAsUsage(MethodCallExpr call)
protected MethodUsage
toMethodUsage(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes)
-
-
-
Method Detail
-
get
public static JavaParserFacade get(TypeSolver typeSolver)
Note that the addition of the modifiersynchronized
is 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 aType
into the correspondingResolvedType
.- Parameters:
type
- The type to be converted.context
- The current context.- Returns:
- The type resolved.
-
convertToUsage
public ResolvedType convertToUsage(Type type)
Convert aType
into 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 aClass
into the correspondingResolvedType
.- Parameters:
clazz
- The class to be converted.- Returns:
- The class resolved.
-
-