public class DefaultPackageScanClassResolver extends Object implements PackageScanClassResolver
PackageScanClassResolver
Constructor and Description |
---|
DefaultPackageScanClassResolver() |
Modifier and Type | Method and Description |
---|---|
void |
addClassLoader(ClassLoader classLoader)
Adds the class loader to the existing loaders
|
void |
addFilter(PackageScanFilter filter)
Add a filter that will be applied to all scan operations
|
protected void |
addFoundClass(Class<?> type) |
protected void |
addFoundClass(String packageName,
Class<?> type) |
protected void |
addIfMatching(PackageScanFilter test,
String fqn,
Set<Class<?>> classes)
Add the class designated by the fully qualified class name provided to
the set of resolved classes if and only if it is approved by the Test
supplied.
|
protected URL |
customResourceLocator(URL url) |
protected void |
find(PackageScanFilter test,
String packageName,
Set<Class<?>> classes) |
protected void |
findAllClasses(String packageName,
ClassLoader loader) |
Set<Class<?>> |
findByFilter(PackageScanFilter filter,
String... packageNames)
Attempts to discover classes filter by the provided filter
|
Set<Class<?>> |
findImplementations(Class parent,
String... packageNames)
Attempts to discover classes that are assignable to the type provided.
|
protected void |
findInAllClasses(PackageScanFilter test,
String packageName,
Set<Class<?>> classes) |
Set<ClassLoader> |
getClassLoaders()
Gets the ClassLoader instances that should be used when scanning for classes.
|
protected Set<Class> |
getFoundClasses(String packageName) |
protected Enumeration<URL> |
getResources(ClassLoader loader,
String packageName)
Strategy to get the resources by the given classloader.
|
protected void |
loadImplementationsInJar(String parent,
InputStream stream,
ClassLoader loader,
File parentFile)
Finds matching classes within a jar files that contains a folder
structure matching the package structure.
|
void |
removeFilter(PackageScanFilter filter)
Removes the filter
|
void |
setClassLoaders(Set<ClassLoader> classLoaders)
Sets the ClassLoader instances that should be used when scanning for
classes.
|
protected final transient Logger log
public void addClassLoader(ClassLoader classLoader)
PackageScanClassResolver
addClassLoader
in interface PackageScanClassResolver
classLoader
- the loader to addpublic void addFilter(PackageScanFilter filter)
PackageScanClassResolver
addFilter
in interface PackageScanClassResolver
filter
- filter to filter desired classes in all scan operationspublic void removeFilter(PackageScanFilter filter)
PackageScanClassResolver
removeFilter
in interface PackageScanClassResolver
filter
- filter to filter desired classes in all scan operationspublic Set<ClassLoader> getClassLoaders()
PackageScanClassResolver
getClassLoaders
in interface PackageScanClassResolver
public void setClassLoaders(Set<ClassLoader> classLoaders)
PackageScanClassResolver
setClassLoaders
in interface PackageScanClassResolver
classLoaders
- loaders to use when scanning for classespublic Set<Class<?>> findImplementations(Class parent, String... packageNames)
PackageScanClassResolver
findImplementations
in interface PackageScanClassResolver
parent
- the class of interface to find subclasses or implementations ofpackageNames
- one or more package names to scan (including subpackages) for classespublic Set<Class<?>> findByFilter(PackageScanFilter filter, String... packageNames)
PackageScanClassResolver
findByFilter
in interface PackageScanClassResolver
filter
- filter to filter desired classes.packageNames
- one or more package names to scan (including subpackages) for classesprotected void find(PackageScanFilter test, String packageName, Set<Class<?>> classes)
protected void findAllClasses(String packageName, ClassLoader loader)
protected void findInAllClasses(PackageScanFilter test, String packageName, Set<Class<?>> classes)
protected void addFoundClass(Class<?> type)
protected URL customResourceLocator(URL url) throws IOException
IOException
protected Enumeration<URL> getResources(ClassLoader loader, String packageName) throws IOException
WebSpherePackageScanClassResolver
to take care of WebSphere's odditiy of resource loading.loader
- the classloaderpackageName
- the packagename for the package to loadIOException
- is thrown by the classloaderprotected void loadImplementationsInJar(String parent, InputStream stream, ClassLoader loader, File parentFile) throws IOException
parent
- the parent package under which classes must be in order to
be consideredstream
- the inputstream of the jar file to be examined for classesIOException
protected void addIfMatching(PackageScanFilter test, String fqn, Set<Class<?>> classes)
test
- the test used to determine if the class matchesfqn
- the fully qualified name of a classCopyright © 2016 Liquibase.org. All rights reserved.