Class CombinedTypeSolver
java.lang.Object
com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver
- All Implemented Interfaces:
TypeSolver
A container for type solvers. All solving is done by the contained type solvers.
This helps you when an API asks for a single type solver, but you need several.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Provides some convenience exception handler implementations -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List
<TypeSolver> A predicate which determines what to do if an exception is raised during the parsing process.private TypeSolver
private final Cache
<String, SymbolReference<ResolvedReferenceTypeDeclaration>> Fields inherited from interface com.github.javaparser.resolution.TypeSolver
JAVA_LANG_OBJECT, JAVA_LANG_RECORD
-
Constructor Summary
ConstructorsConstructorDescriptionCombinedTypeSolver
(TypeSolver... elements) CombinedTypeSolver
(Iterable<TypeSolver> elements) CombinedTypeSolver
(Predicate<Exception> exceptionHandler, TypeSolver... elements) CombinedTypeSolver
(Predicate<Exception> exceptionHandler, Iterable<TypeSolver> elements) CombinedTypeSolver
(Predicate<Exception> exceptionHandler, Iterable<TypeSolver> elements, Cache<String, SymbolReference<ResolvedReferenceTypeDeclaration>> typeCache) Create a new instance ofCombinedTypeSolver
with a custom symbol cache. -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(TypeSolver typeSolver) Append a type solver to the current solver.void
add
(TypeSolver typeSolver, boolean resetCache) Append a type solver to the current solver.Parent of the this TypeSolver.void
setExceptionHandler
(Predicate<Exception> exceptionHandler) void
setParent
(TypeSolver parent) Set the parent of this TypeSolver.Solve the given type.tryToSolveType
(String name) Try to solve the type with the given name.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.github.javaparser.resolution.TypeSolver
getRoot, getSolvedJavaLangObject, getSolvedJavaLangRecord, hasType
-
Field Details
-
typeCache
-
parent
-
elements
-
exceptionHandler
A predicate which determines what to do if an exception is raised during the parsing process. If it returnstrue
the exception will be ignored, and solving will continue using the next solver in line. If it returnsfalse
the exception will be thrown, stopping the solving process. Main use case for this is to circumvent bugs or missing functionality in some type solvers. If for example solver A has a bug resulting in aNullPointerException
, you could use awhitelist
to ignore that type of exception. A secondary solver would then be able to step in when such an error occurs.- See Also:
-
-
Constructor Details
-
CombinedTypeSolver
-
CombinedTypeSolver
-
CombinedTypeSolver
-
CombinedTypeSolver
- See Also:
-
CombinedTypeSolver
public CombinedTypeSolver(Predicate<Exception> exceptionHandler, Iterable<TypeSolver> elements, Cache<String, SymbolReference<ResolvedReferenceTypeDeclaration>> typeCache) Create a new instance ofCombinedTypeSolver
with a custom symbol cache.- Parameters:
exceptionHandler
- How exception should be handled.elements
- The list of elements to include by default.typeCache
- The cache to be used to store symbols.- See Also:
-
-
Method Details
-
setExceptionHandler
- See Also:
-
getParent
Description copied from interface:TypeSolver
Parent of the this TypeSolver. This can return null.- Specified by:
getParent
in interfaceTypeSolver
-
setParent
Description copied from interface:TypeSolver
Set the parent of this TypeSolver.- Specified by:
setParent
in interfaceTypeSolver
-
add
Append a type solver to the current solver.- Parameters:
typeSolver
- The type solver to be appended.resetCache
- If should reset the cache when the solver is inserted.
-
add
Append a type solver to the current solver.
By default the cached values will be removed.- Parameters:
typeSolver
- The type solver to be appended.
-
tryToSolveType
Description copied from interface:TypeSolver
Try to solve the type with the given name. It always return a SymbolReference which can be solved or unsolved.- Specified by:
tryToSolveType
in interfaceTypeSolver
-
solveType
Description copied from interface:TypeSolver
Solve the given type. Either the type is found and returned or an UnsolvedSymbolException is thrown.- Specified by:
solveType
in interfaceTypeSolver
- Throws:
UnsolvedSymbolException
-