Class ClassLoaderTypeSolver

java.lang.Object
com.github.javaparser.symbolsolver.resolution.typesolvers.ClassLoaderTypeSolver
All Implemented Interfaces:
com.github.javaparser.resolution.TypeSolver
Direct Known Subclasses:
ReflectionTypeSolver

public class ClassLoaderTypeSolver extends Object implements com.github.javaparser.resolution.TypeSolver
This TypeSolver wraps a ClassLoader. It can solve all types that the given ClassLoader can load. This is intended to be used with custom classloaders. To support typical cases based on reflection just use the ReflectionTypeSolver
Author:
Federico Tomassetti
  • Field Summary

    Fields inherited from interface com.github.javaparser.resolution.TypeSolver

    JAVA_LANG_OBJECT, JAVA_LANG_RECORD
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ClassLoaderTypeSolver(ClassLoader classLoader, Iterable<Object> moduleLayers)
    Create a ClassLoaderTypeSolver with a list of module layers to check when solving types in modules.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
     
    com.github.javaparser.resolution.TypeSolver
     
    protected void
     
    void
    setParent(com.github.javaparser.resolution.TypeSolver parent)
     
    com.github.javaparser.resolution.model.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration>
     
    com.github.javaparser.resolution.model.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration>
    tryToSolveTypeInModule(String qualifiedModuleName, String simpleTypeName)
     

    Methods inherited from class 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, solveType, solveTypeInModule
  • Constructor Details

    • ClassLoaderTypeSolver

      public ClassLoaderTypeSolver(ClassLoader classLoader)
    • ClassLoaderTypeSolver

      public ClassLoaderTypeSolver(ClassLoader classLoader, Iterable<Object> moduleLayers)
      Create a ClassLoaderTypeSolver with a list of module layers to check when solving types in modules. If moduleLayers is empty, tryToSolveTypeInModule will always return SymbolReference.unsolved
      Parameters:
      classLoader - the ClassLoader that should be used for type solving
      moduleLayers - MUST be Iterable<java.lang.ModuleLayer>. Object is only used in the signature for Java 8 compatibility.
  • Method Details

    • setModulePackagesFromLayers

      protected void setModulePackagesFromLayers(Iterable<Object> moduleLayers)
    • getParent

      public com.github.javaparser.resolution.TypeSolver getParent()
      Specified by:
      getParent in interface com.github.javaparser.resolution.TypeSolver
    • setParent

      public void setParent(com.github.javaparser.resolution.TypeSolver parent)
      Specified by:
      setParent in interface com.github.javaparser.resolution.TypeSolver
    • filterName

      protected boolean filterName(String name)
    • tryToSolveTypeInModule

      public com.github.javaparser.resolution.model.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration> tryToSolveTypeInModule(String qualifiedModuleName, String simpleTypeName)
      Specified by:
      tryToSolveTypeInModule in interface com.github.javaparser.resolution.TypeSolver
    • tryToSolveType

      public com.github.javaparser.resolution.model.SymbolReference<com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration> tryToSolveType(String name)
      Specified by:
      tryToSolveType in interface com.github.javaparser.resolution.TypeSolver