Class ClassFinder.DefaultClassFinder

java.lang.Object
com.vaadin.flow.server.frontend.scanner.ClassFinder.DefaultClassFinder
All Implemented Interfaces:
ClassFinder, Serializable
Enclosing interface:
ClassFinder

public static class ClassFinder.DefaultClassFinder extends Object implements ClassFinder
Implementation that searches for annotated classes or subclasses in a list of classes.
See Also:
  • Constructor Details

    • DefaultClassFinder

      public DefaultClassFinder(Set<Class<?>> classes)
      It uses current classloader for getting resources or loading classes.
      Parameters:
      classes - The classes.
    • DefaultClassFinder

      public DefaultClassFinder(ClassLoader classLoader, Class<?>... classes)
      ClassFinder using a specified ClassLoader to load classes and a list of classes where to look for annotations or subclasses.
      Parameters:
      classLoader - classloader for getting resources or loading classes.
      classes - classes where to look for annotations or subclasses.
  • Method Details

    • getAnnotatedClasses

      public Set<Class<?>> getAnnotatedClasses(Class<? extends Annotation> annotation)
      Description copied from interface: ClassFinder
      Get annotated classes in the classloader.
      Specified by:
      getAnnotatedClasses in interface ClassFinder
      Parameters:
      annotation - the annotation
      Returns:
      a set with all classes that are annotated
    • getResource

      public URL getResource(String name)
      Description copied from interface: ClassFinder
      Get a resource from the classpath.
      Specified by:
      getResource in interface ClassFinder
      Parameters:
      name - class literal
      Returns:
      the resource
    • getResources

      public List<URL> getResources(String name) throws IOException
      Description copied from interface: ClassFinder
      Get all resources with the given name from the classpath.

      Unlike ClassFinder.getResource(String), which returns only the first match, this returns the resource from every jar or folder providing it.

      Specified by:
      getResources in interface ClassFinder
      Parameters:
      name - the resource path
      Returns:
      all matching resources, never null
      Throws:
      IOException - if the resources cannot be listed
    • loadClass

      public <T> Class<T> loadClass(String name) throws ClassNotFoundException
      Description copied from interface: ClassFinder
      Load a class in the classloader.
      Specified by:
      loadClass in interface ClassFinder
      Type Parameters:
      T - the type of the class
      Parameters:
      name - the class literal
      Returns:
      the class
      Throws:
      ClassNotFoundException - when the class is not in the classpath
    • getSubTypesOf

      public <T> Set<Class<? extends T>> getSubTypesOf(Class<T> type)
      Description copied from interface: ClassFinder
      Gets all subtypes in hierarchy of a given type.
      Specified by:
      getSubTypesOf in interface ClassFinder
      Type Parameters:
      T - the class of the type
      Parameters:
      type - the type to search for the subtypes for
      Returns:
      set of the subtypes of the given class
    • getClassLoader

      public ClassLoader getClassLoader()
      Description copied from interface: ClassFinder
      Get class loader which is used to find classes.
      Specified by:
      getClassLoader in interface ClassFinder
      Returns:
      the class loader which is used to find classes..