public class ConfigurationBuilder extends Object implements Configuration
Configuration, to be used for constructing a Reflections instance
usage:
new Reflections(
new ConfigurationBuilder()
.filterInputsBy(new FilterBuilder().include("your project's common package prefix here..."))
.setUrls(ClasspathHelper.forClassLoader())
.setScanners(new SubTypesScanner(), new TypeAnnotationsScanner().filterResultsBy(myClassAnnotationsFilter)));
executorService is used optionally used for parallel scanning. if value is null then scanning is done in a simple for loop
defaults: accept all for inputsFilter,
executorService is null,
serializer is XmlSerializer
| Modifier and Type | Field and Description |
|---|---|
protected MetadataAdapter |
metadataAdapter |
| Constructor and Description |
|---|
ConfigurationBuilder() |
| Modifier and Type | Method and Description |
|---|---|
ConfigurationBuilder |
addClassLoader(ClassLoader classLoader)
add class loader, might be used for resolving methods/fields
|
ConfigurationBuilder |
addClassLoaders(ClassLoader... classLoaders)
add class loader, might be used for resolving methods/fields
|
ConfigurationBuilder |
addClassLoaders(Collection<ClassLoader> classLoaders)
add class loader, might be used for resolving methods/fields
|
ConfigurationBuilder |
addScanners(Scanner... scanners)
set the scanners instances for scanning different metadata
|
ConfigurationBuilder |
addUrls(Collection<URL> urls)
add urls to be scanned
|
ConfigurationBuilder |
addUrls(URL... urls)
add urls to be scanned
|
static ConfigurationBuilder |
build(Object... params)
constructs a
ConfigurationBuilder using the given parameters, in a non statically typed way. |
ConfigurationBuilder |
filterInputsBy(
sets the input filter for all resources to be scanned.
|
ConfigurationBuilder |
forPackages(String... packages) |
ClassLoader[] |
getClassLoaders()
get class loader, might be used for scanning or resolving methods/fields
|
ExecutorService |
getExecutorService()
executor service used to scan files.
|
|
getInputsFilter()
get the fully qualified name filter used to filter types to be scanned
|
MetadataAdapter |
getMetadataAdapter()
returns the metadata adapter.
|
Set<Scanner> |
getScanners()
the scanner instances used for scanning different metadata
|
Serializer |
getSerializer()
the default serializer to use when saving Reflection
|
Set<URL> |
getUrls()
the urls to be scanned
|
void |
setClassLoaders(ClassLoader[] classLoaders)
set class loader, might be used for resolving methods/fields
|
ConfigurationBuilder |
setExecutorService(ExecutorService executorService)
sets the executor service used for scanning.
|
void |
setInputsFilter(
sets the input filter for all resources to be scanned.
|
ConfigurationBuilder |
setMetadataAdapter(MetadataAdapter metadataAdapter)
sets the metadata adapter used to fetch metadata from classes
|
ConfigurationBuilder |
setScanners(Scanner... scanners)
set the scanners instances for scanning different metadata
|
ConfigurationBuilder |
setSerializer(Serializer serializer)
sets the serializer used when issuing
Reflections.save(java.lang.String) |
ConfigurationBuilder |
setUrls(Collection<URL> urls)
set the urls to be scanned
|
ConfigurationBuilder |
setUrls(URL... urls)
set the urls to be scanned
|
ConfigurationBuilder |
useParallelExecutor()
sets the executor service used for scanning to ThreadPoolExecutor with core size as
Runtime.availableProcessors() |
ConfigurationBuilder |
useParallelExecutor(int availableProcessors)
sets the executor service used for scanning to ThreadPoolExecutor with core size as the given availableProcessors parameter
|
protected MetadataAdapter metadataAdapter
public static ConfigurationBuilder build(Object... params)
ConfigurationBuilder using the given parameters, in a non statically typed way. that is, each element in params is
guessed by it's type and populated into the configuration.
String - add urls using ClasspathHelper.forPackage(String, ClassLoader...) ()}Class - add urls using ClasspathHelper.forClass(Class, ClassLoader...) ClassLoader - use these classloaders in order to find urls in ClasspathHelper.forPackage(), ClasspathHelper.forClass() and for resolving typesScanner - use given scanner, overriding the default scannersURL - add the given url for scanningObject[] - flatten and use each element as aboveConfigurationBuilder appropriately.public ConfigurationBuilder forPackages(String... packages)
public Set<Scanner> getScanners()
ConfigurationgetScanners in interface Configurationpublic ConfigurationBuilder setScanners(Scanner... scanners)
public ConfigurationBuilder addScanners(Scanner... scanners)
public Set<URL> getUrls()
ConfigurationgetUrls in interface Configurationpublic ConfigurationBuilder setUrls(Collection<URL> urls)
use ClasspathHelper convenient methods to get the relevant urls
public ConfigurationBuilder setUrls(URL... urls)
use ClasspathHelper convenient methods to get the relevant urls
public ConfigurationBuilder addUrls(Collection<URL> urls)
use ClasspathHelper convenient methods to get the relevant urls
public ConfigurationBuilder addUrls(URL... urls)
use ClasspathHelper convenient methods to get the relevant urls
public MetadataAdapter getMetadataAdapter()
JavassistAdapter otherwise defaults to JavaReflectionAdapter.
the JavassistAdapter is preferred in terms of performance and class loading.
getMetadataAdapter in interface Configurationpublic ConfigurationBuilder setMetadataAdapter(MetadataAdapter metadataAdapter)
publicgetInputsFilter()
ConfigurationgetInputsFilter in interface Configurationpublic void setInputsFilter(inputsFilter)
supply a Predicate or use the FilterBuilder
public ConfigurationBuilder filterInputsBy(inputsFilter)
supply a Predicate or use the FilterBuilder
public ExecutorService getExecutorService()
ConfigurationgetExecutorService in interface Configurationpublic ConfigurationBuilder setExecutorService(ExecutorService executorService)
public ConfigurationBuilder useParallelExecutor()
Runtime.availableProcessors()
default is ThreadPoolExecutor with a single core
public ConfigurationBuilder useParallelExecutor(int availableProcessors)
default is ThreadPoolExecutor with a single core
public Serializer getSerializer()
ConfigurationgetSerializer in interface Configurationpublic ConfigurationBuilder setSerializer(Serializer serializer)
Reflections.save(java.lang.String)public ClassLoader[] getClassLoaders()
getClassLoaders in interface Configurationpublic void setClassLoaders(ClassLoader[] classLoaders)
public ConfigurationBuilder addClassLoader(ClassLoader classLoader)
public ConfigurationBuilder addClassLoaders(ClassLoader... classLoaders)
public ConfigurationBuilder addClassLoaders(Collection<ClassLoader> classLoaders)
Copyright © 2014. All rights reserved.