Class JavaParserFacade
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate FailureHandler
private static final Map
<TypeSolver, JavaParserFacade> private static final String
private final SymbolResolver
private final Solver
private static final DataKey
<ResolvedType> private static final DataKey
<ResolvedType> private final TypeExtractor
private final TypeSolver
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclassToResolvedType
(Class<?> clazz) Deprecated.instead consider SymbolSolver.classToResolvedType(Classinvalid input: '<'?> clazz)static void
This method is used to clear internal caches for the sake of releasing memory.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
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.private Optional
<ForEachStmt> forEachStmtWithVariableDeclarator
(VariableDeclarator variableDeclarator) 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) Get the type associated with the node.private ResolvedType
getTypeConcrete
(Node node, boolean solveLambdas) Should return more like a TypeApplication: a TypeDeclaration and possible typeParametersValues or array modifiers.getTypeDeclaration
(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) getTypeDeclaration
(TypeDeclaration<?> typeDeclaration) getTypeDeclaration
(Node node) getTypeOfThisIn
(Node node) "this" inserted in the given point, which type would have?solve
(AnnotationExpr annotationExpr) SymbolReference
<? extends ResolvedValueDeclaration> solve
(Expression expr) solve
(FieldAccessExpr fieldAccessExpr) solve
(MethodCallExpr methodCallExpr) solve
(MethodCallExpr methodCallExpr, boolean solveLambdas) Given a method call find out to which method declaration it corresponds.solve
(MethodReferenceExpr methodReferenceExpr) solve
(MethodReferenceExpr methodReferenceExpr, boolean solveLambdas) Given a method reference find out to which method declaration it corresponds.SymbolReference
<? extends ResolvedValueDeclaration> solve
(ObjectCreationExpr objectCreationExpr) solve
(ObjectCreationExpr objectCreationExpr, boolean solveLambdas) Given a constructor call find out to which constructor declaration it corresponds.SymbolReference
<? extends ResolvedValueDeclaration> solve
(SimpleName nameExpr) solve
(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt) solve
(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas) private void
solveArguments
(Node node, NodeList<Expression> args, boolean solveLambdas, List<ResolvedType> argumentTypes, List<LambdaArgumentTypePlaceholder> placeholders) protected MethodUsage
toMethodUsage
(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes)
-
Field Details
-
TYPE_WITH_LAMBDAS_RESOLVED
-
TYPE_WITHOUT_LAMBDAS_RESOLVED
-
instances
-
JAVA_LANG_STRING
-
typeSolver
-
typeExtractor
-
symbolSolver
-
symbolResolver
-
failureHandler
-
-
Constructor Details
-
JavaParserFacade
-
-
Method Details
-
get
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 .- See Also:
-
clearInstances
public static void clearInstances()This method is used to clear internal caches for the sake of releasing memory. -
getTypeSolver
-
getSymbolSolver
-
solve
-
solve
-
solve
-
solve
-
solve
-
solve
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt) -
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas) -
solve
-
solve
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas) Given a constructor call find out to which constructor declaration it corresponds. -
solveArguments
private void solveArguments(Node node, NodeList<Expression> args, boolean solveLambdas, List<ResolvedType> argumentTypes, List<LambdaArgumentTypePlaceholder> placeholders) -
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
-
solve
-
getType
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
-
toMethodUsage
protected MethodUsage toMethodUsage(MethodReferenceExpr methodReferenceExpr, List<ResolvedType> paramTypes) -
getBinaryTypeConcrete
protected ResolvedType getBinaryTypeConcrete(Node left, Node right, boolean solveLambdas, BinaryExpr.Operator operator) -
getTypeConcrete
Should return more like a TypeApplication: a TypeDeclaration and possible typeParametersValues or array modifiers. -
findContainingTypeDecl
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
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
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
Convert aType
into the correspondingResolvedType
.- Parameters:
type
- The type to be converted.context
- The current context.- Returns:
- The type resolved.
-
convertToUsage
Convert aType
into the correspondingResolvedType
.- Parameters:
type
- The type to be converted.- Returns:
- The type resolved.
-
forEachStmtWithVariableDeclarator
private Optional<ForEachStmt> forEachStmtWithVariableDeclarator(VariableDeclarator variableDeclarator) -
convert
-
convert
-
solveMethodAsUsage
-
getTypeDeclaration
-
getTypeDeclaration
public ResolvedReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) -
getTypeOfThisIn
"this" inserted in the given point, which type would have? -
getTypeDeclaration
-
classToResolvedType
Deprecated.instead consider SymbolSolver.classToResolvedType(Classinvalid input: '<'?> clazz)Convert aClass
into the correspondingResolvedType
.- Parameters:
clazz
- The class to be converted.- Returns:
- The class resolved.
-