Class TypeExtractor
- java.lang.Object
-
- com.github.javaparser.symbolsolver.javaparsermodel.DefaultVisitorAdapter
-
- com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor
-
- All Implemented Interfaces:
GenericVisitor<ResolvedType,java.lang.Boolean>
public class TypeExtractor extends DefaultVisitorAdapter
-
-
Field Summary
Fields Modifier and Type Field Description private JavaParserFacade
facade
private static java.lang.String
JAVA_LANG_STRING
private ResolvedType
stringReferenceType
private TypeSolver
typeSolver
-
Constructor Summary
Constructors Constructor Description TypeExtractor(TypeSolver typeSolver, JavaParserFacade facade)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Solver
createSolver()
private static int
getParamPos(Expression node)
private boolean
isCompatible(ResolvedType resolvedType, ResolvedPrimitiveType primitiveType)
private ResolvedType
resolveLambda(LambdaExpr node, ResolvedType result)
private ResolvedType
solveDotExpressionType(ResolvedReferenceTypeDeclaration parentType, FieldAccessExpr node)
Java Parser can't differentiate between packages, internal types, and fields.ResolvedType
visit(FieldDeclaration node, java.lang.Boolean solveLambdas)
ResolvedType
visit(Parameter node, java.lang.Boolean solveLambdas)
ResolvedType
visit(VariableDeclarator node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ArrayAccessExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ArrayCreationExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ArrayInitializerExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(AssignExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(BinaryExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(BooleanLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(CastExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(CharLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ClassExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ConditionalExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(DoubleLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(EnclosedExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(FieldAccessExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(InstanceOfExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(IntegerLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(LambdaExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(LongLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(MethodCallExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(MethodReferenceExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(NameExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(NullLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ObjectCreationExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(StringLiteralExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(SuperExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(ThisExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(TypeExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(UnaryExpr node, java.lang.Boolean solveLambdas)
ResolvedType
visit(VariableDeclarationExpr node, java.lang.Boolean solveLambdas)
-
Methods inherited from class com.github.javaparser.symbolsolver.javaparsermodel.DefaultVisitorAdapter
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Field Detail
-
JAVA_LANG_STRING
private static final java.lang.String JAVA_LANG_STRING
-
stringReferenceType
private final ResolvedType stringReferenceType
-
typeSolver
private TypeSolver typeSolver
-
facade
private JavaParserFacade facade
-
-
Constructor Detail
-
TypeExtractor
public TypeExtractor(TypeSolver typeSolver, JavaParserFacade facade)
-
-
Method Detail
-
visit
public ResolvedType visit(VariableDeclarator node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(Parameter node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ArrayAccessExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ArrayCreationExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ArrayInitializerExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(AssignExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(BinaryExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(CastExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ClassExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ConditionalExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
isCompatible
private boolean isCompatible(ResolvedType resolvedType, ResolvedPrimitiveType primitiveType)
-
visit
public ResolvedType visit(EnclosedExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
solveDotExpressionType
private ResolvedType solveDotExpressionType(ResolvedReferenceTypeDeclaration parentType, FieldAccessExpr node)
Java Parser can't differentiate between packages, internal types, and fields. All three are lumped together into FieldAccessExpr. We need to differentiate them.
-
visit
public ResolvedType visit(FieldAccessExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(InstanceOfExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(StringLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(IntegerLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(LongLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(CharLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(DoubleLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(BooleanLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(NullLiteralExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(MethodCallExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(NameExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(TypeExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ObjectCreationExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(ThisExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(SuperExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(UnaryExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(VariableDeclarationExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(LambdaExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
resolveLambda
private ResolvedType resolveLambda(LambdaExpr node, ResolvedType result)
-
visit
public ResolvedType visit(MethodReferenceExpr node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
visit
public ResolvedType visit(FieldDeclaration node, java.lang.Boolean solveLambdas)
- Specified by:
visit
in interfaceGenericVisitor<ResolvedType,java.lang.Boolean>
- Overrides:
visit
in classDefaultVisitorAdapter
-
getParamPos
private static int getParamPos(Expression node)
-
createSolver
protected Solver createSolver()
-
-