Interface PackageScanClassResolver

    • Method Detail

      • getClassLoaders

        Set<ClassLoader> getClassLoaders()
        Gets the ClassLoader instances that should be used when scanning for classes.

        This implementation will return a new unmodifiable set containing the classloaders. Use the addClassLoader(ClassLoader) method if you want to add new classloaders to the class loaders list.

        Returns:
        the class loaders to use
      • addClassLoader

        void addClassLoader​(ClassLoader classLoader)
        Adds the class loader to the existing loaders
        Parameters:
        classLoader - the loader to add
      • findAnnotated

        Set<Class<?>> findAnnotated​(Class<? extends Annotation> annotation,
                                    String... packageNames)
        Attempts to discover classes that are annotated with to the annotation.
        Parameters:
        annotation - the annotation that should be present on matching classes
        packageNames - one or more package names to scan (including subpackages) for classes
        Returns:
        the classes found, returns an empty set if none found
      • findAnnotated

        Set<Class<?>> findAnnotated​(Set<Class<? extends Annotation>> annotations,
                                    String... packageNames)
        Attempts to discover classes that are annotated with to the annotation.
        Parameters:
        annotations - the annotations that should be present (any of them) on matching classes
        packageNames - one or more package names to scan (including subpackages) for classes
        Returns:
        the classes found, returns an empty set if none found
      • findImplementations

        Set<Class<?>> findImplementations​(Class<?> parent,
                                          String... packageNames)
        Attempts to discover classes that are assignable to the type provided. In the case that an interface is provided this method will collect implementations. In the case of a non-interface class, subclasses will be collected.
        Parameters:
        parent - the class of interface to find subclasses or implementations of
        packageNames - one or more package names to scan (including subpackages) for classes
        Returns:
        the classes found, returns an empty set if none found
      • findByFilter

        Set<Class<?>> findByFilter​(PackageScanFilter filter,
                                   String... packageNames)
        Attempts to discover classes filter by the provided filter
        Parameters:
        filter - filter to filter desired classes.
        packageNames - one or more package names to scan (including subpackages) for classes
        Returns:
        the classes found, returns an empty set if none found
      • addFilter

        void addFilter​(PackageScanFilter filter)
        Add a filter that will be applied to all scan operations
        Parameters:
        filter - filter to filter desired classes in all scan operations
      • removeFilter

        void removeFilter​(PackageScanFilter filter)
        Removes the filter
        Parameters:
        filter - filter to filter desired classes in all scan operations
      • setAcceptableSchemes

        void setAcceptableSchemes​(String schemes)
        To specify a set of accepted schemas to use for loading resources as URL connections (besides http and https schemas)
      • clearCache

        void clearCache()
        Clears and frees the internal cache.