Class 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 
      Modifier and Type Method Description
      com.github.javaparser.resolution.types.ResolvedType classToResolvedType​(Class<?> clazz)  
      static void clearInstances()
      This method is used to clear internal caches for the sake of releasing memory.
      com.github.javaparser.resolution.types.ResolvedType convert​(com.github.javaparser.ast.type.Type type, com.github.javaparser.ast.Node node)  
      com.github.javaparser.resolution.types.ResolvedType convert​(com.github.javaparser.ast.type.Type type, Context context)  
      com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type)  
      com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type, com.github.javaparser.ast.Node context)  
      protected com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type, Context context)  
      com.github.javaparser.resolution.types.ResolvedType convertToUsageVariableType​(com.github.javaparser.ast.body.VariableDeclarator var)  
      protected com.github.javaparser.ast.body.TypeDeclaration<?> findContainingTypeDecl​(com.github.javaparser.ast.Node node)  
      protected com.github.javaparser.ast.Node findContainingTypeDeclOrObjectCreationExpr​(com.github.javaparser.ast.Node node)  
      static JavaParserFacade get​(com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver)  
      protected com.github.javaparser.resolution.types.ResolvedType getBinaryTypeConcrete​(com.github.javaparser.ast.Node left, com.github.javaparser.ast.Node right, boolean solveLambdas, com.github.javaparser.ast.expr.BinaryExpr.Operator operator)  
      SymbolSolver getSymbolSolver()  
      com.github.javaparser.resolution.types.ResolvedType getType​(com.github.javaparser.ast.Node node)
      Get the type associated with the node.
      com.github.javaparser.resolution.types.ResolvedType getType​(com.github.javaparser.ast.Node node, boolean solveLambdas)  
      com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration classOrInterfaceDeclaration)  
      com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.body.TypeDeclaration<?> typeDeclaration)  
      com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.Node node)  
      com.github.javaparser.resolution.types.ResolvedType getTypeOfThisIn​(com.github.javaparser.ast.Node node)
      "this" inserted in the given point, which type would have?
      com.github.javaparser.symbolsolver.model.resolution.TypeSolver getTypeSolver()  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration> solve​(com.github.javaparser.ast.expr.AnnotationExpr annotationExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.Expression expr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.FieldAccessExpr fieldAccessExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration> solve​(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration> solve​(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, boolean solveLambdas)
      Given a method call find out to which method declaration it corresponds.
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.NameExpr nameExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.expr.ObjectCreationExpr objectCreationExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.expr.ObjectCreationExpr objectCreationExpr, boolean solveLambdas)
      Given a constructor call find out to which constructor declaration it corresponds.
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.SimpleName nameExpr)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration> solve​(com.github.javaparser.ast.expr.ThisExpr node)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt)  
      com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt, boolean solveLambdas)  
      protected static com.github.javaparser.resolution.types.ResolvedType solveGenericTypes​(com.github.javaparser.resolution.types.ResolvedType type, Context context)  
      com.github.javaparser.resolution.MethodUsage solveMethodAsUsage​(com.github.javaparser.ast.expr.MethodCallExpr call)  
      protected com.github.javaparser.resolution.MethodUsage toMethodUsage​(com.github.javaparser.ast.expr.MethodReferenceExpr methodReferenceExpr)  
    • Method Detail

      • getTypeSolver

        public com.github.javaparser.symbolsolver.model.resolution.TypeSolver getTypeSolver()
      • get

        public static JavaParserFacade get​(com.github.javaparser.symbolsolver.model.resolution.TypeSolver typeSolver)
      • clearInstances

        public static void clearInstances()
        This method is used to clear internal caches for the sake of releasing memory.
      • solveGenericTypes

        protected static com.github.javaparser.resolution.types.ResolvedType solveGenericTypes​(com.github.javaparser.resolution.types.ResolvedType type,
                                                                                               Context context)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.NameExpr nameExpr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.SimpleName nameExpr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<? extends com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.Expression expr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration> solve​(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.expr.ObjectCreationExpr objectCreationExpr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt explicitConstructorInvocationStmt,
                                                                                                                                                                       boolean solveLambdas)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration> solve​(com.github.javaparser.ast.expr.ThisExpr node)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration> solve​(com.github.javaparser.ast.expr.ObjectCreationExpr objectCreationExpr,
                                                                                                                                                                       boolean solveLambdas)
        Given a constructor call find out to which constructor declaration it corresponds.
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration> solve​(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr,
                                                                                                                                                                  boolean solveLambdas)
        Given a method call find out to which method declaration it corresponds.
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration> solve​(com.github.javaparser.ast.expr.AnnotationExpr annotationExpr)
      • solve

        public com.github.javaparser.symbolsolver.model.resolution.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedValueDeclaration> solve​(com.github.javaparser.ast.expr.FieldAccessExpr fieldAccessExpr)
      • getType

        public com.github.javaparser.resolution.types.ResolvedType getType​(com.github.javaparser.ast.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 accomodate this usage and avoid confusion this method return the type itself when used on the name of type.

      • getType

        public com.github.javaparser.resolution.types.ResolvedType getType​(com.github.javaparser.ast.Node node,
                                                                           boolean solveLambdas)
      • toMethodUsage

        protected com.github.javaparser.resolution.MethodUsage toMethodUsage​(com.github.javaparser.ast.expr.MethodReferenceExpr methodReferenceExpr)
      • getBinaryTypeConcrete

        protected com.github.javaparser.resolution.types.ResolvedType getBinaryTypeConcrete​(com.github.javaparser.ast.Node left,
                                                                                            com.github.javaparser.ast.Node right,
                                                                                            boolean solveLambdas,
                                                                                            com.github.javaparser.ast.expr.BinaryExpr.Operator operator)
      • findContainingTypeDecl

        protected com.github.javaparser.ast.body.TypeDeclaration<?> findContainingTypeDecl​(com.github.javaparser.ast.Node node)
      • findContainingTypeDeclOrObjectCreationExpr

        protected com.github.javaparser.ast.Node findContainingTypeDeclOrObjectCreationExpr​(com.github.javaparser.ast.Node node)
      • convertToUsageVariableType

        public com.github.javaparser.resolution.types.ResolvedType convertToUsageVariableType​(com.github.javaparser.ast.body.VariableDeclarator var)
      • convertToUsage

        public com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type,
                                                                                  com.github.javaparser.ast.Node context)
      • convertToUsage

        public com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type)
      • convertToUsage

        protected com.github.javaparser.resolution.types.ResolvedType convertToUsage​(com.github.javaparser.ast.type.Type type,
                                                                                     Context context)
      • convert

        public com.github.javaparser.resolution.types.ResolvedType convert​(com.github.javaparser.ast.type.Type type,
                                                                           com.github.javaparser.ast.Node node)
      • convert

        public com.github.javaparser.resolution.types.ResolvedType convert​(com.github.javaparser.ast.type.Type type,
                                                                           Context context)
      • solveMethodAsUsage

        public com.github.javaparser.resolution.MethodUsage solveMethodAsUsage​(com.github.javaparser.ast.expr.MethodCallExpr call)
      • getTypeDeclaration

        public com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.Node node)
      • getTypeDeclaration

        public com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration classOrInterfaceDeclaration)
      • getTypeOfThisIn

        public com.github.javaparser.resolution.types.ResolvedType getTypeOfThisIn​(com.github.javaparser.ast.Node node)
        "this" inserted in the given point, which type would have?
      • getTypeDeclaration

        public com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration getTypeDeclaration​(com.github.javaparser.ast.body.TypeDeclaration<?> typeDeclaration)
      • classToResolvedType

        public com.github.javaparser.resolution.types.ResolvedType classToResolvedType​(Class<?> clazz)