Class ConfigurationBuilder
- java.lang.Object
-
- org.reflections.util.ConfigurationBuilder
-
- All Implemented Interfaces:
Configuration
public class ConfigurationBuilder extends java.lang.Object implements Configuration
a fluent builder forConfiguration
, to be used for constructing aReflections
instanceusage:
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 loopdefaults: accept all for
inputsFilter
,executorService
is null,serializer
isXmlSerializer
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ClassLoader[]
classLoaders
private java.util.concurrent.ExecutorService
executorService
private boolean
expandSuperTypes
private java.util.function.Predicate<java.lang.String>
inputsFilter
protected MetadataAdapter
metadataAdapter
private java.util.Set<Scanner>
scanners
private Serializer
serializer
private java.util.Set<java.net.URL>
urls
-
Constructor Summary
Constructors Constructor Description ConfigurationBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ConfigurationBuilder
addClassLoader(java.lang.ClassLoader classLoader)
add class loader, might be used for resolving methods/fieldsConfigurationBuilder
addClassLoaders(java.lang.ClassLoader... classLoaders)
add class loader, might be used for resolving methods/fieldsConfigurationBuilder
addClassLoaders(java.util.Collection<java.lang.ClassLoader> classLoaders)
add class loader, might be used for resolving methods/fieldsConfigurationBuilder
addScanners(Scanner... scanners)
set the scanners instances for scanning different metadataConfigurationBuilder
addUrls(java.net.URL... urls)
add urls to be scannedConfigurationBuilder
addUrls(java.util.Collection<java.net.URL> urls)
add urls to be scannedstatic ConfigurationBuilder
build(java.lang.Object... params)
constructs aConfigurationBuilder
using the given parameters, in a non statically typed way.ConfigurationBuilder
filterInputsBy(java.util.function.Predicate<java.lang.String> inputsFilter)
sets the input filter for all resources to be scanned.ConfigurationBuilder
forPackages(java.lang.String... packages)
java.lang.ClassLoader[]
getClassLoaders()
get class loader, might be used for scanning or resolving methods/fieldsjava.util.concurrent.ExecutorService
getExecutorService()
executor service used to scan files.java.util.function.Predicate<java.lang.String>
getInputsFilter()
get the fully qualified name filter used to filter types to be scannedMetadataAdapter
getMetadataAdapter()
returns the metadata adapter.java.util.Set<Scanner>
getScanners()
the scanner instances used for scanning different metadataSerializer
getSerializer()
the default serializer to use when saving Reflectionjava.util.Set<java.net.URL>
getUrls()
the urls to be scannedvoid
setClassLoaders(java.lang.ClassLoader[] classLoaders)
set class loader, might be used for resolving methods/fieldsConfigurationBuilder
setExecutorService(java.util.concurrent.ExecutorService executorService)
sets the executor service used for scanning.ConfigurationBuilder
setExpandSuperTypes(boolean expandSuperTypes)
if set to true, Reflections will expand super types after scanning.void
setInputsFilter(java.util.function.Predicate<java.lang.String> inputsFilter)
sets the input filter for all resources to be scanned.ConfigurationBuilder
setMetadataAdapter(MetadataAdapter metadataAdapter)
sets the metadata adapter used to fetch metadata from classesConfigurationBuilder
setScanners(Scanner... scanners)
set the scanners instances for scanning different metadataConfigurationBuilder
setSerializer(Serializer serializer)
sets the serializer used when issuingReflections.save(java.lang.String)
ConfigurationBuilder
setUrls(java.net.URL... urls)
set the urls to be scannedConfigurationBuilder
setUrls(java.util.Collection<java.net.URL> urls)
set the urls to be scannedboolean
shouldExpandSuperTypes()
if true (default), expand super types after scanning, for super types that were not scanned.ConfigurationBuilder
useParallelExecutor()
sets the executor service used for scanning to ThreadPoolExecutor with core size asRuntime.availableProcessors()
ConfigurationBuilder
useParallelExecutor(int availableProcessors)
sets the executor service used for scanning to ThreadPoolExecutor with core size as the given availableProcessors parameter.
-
-
-
Field Detail
-
scanners
private java.util.Set<Scanner> scanners
-
urls
private java.util.Set<java.net.URL> urls
-
metadataAdapter
protected MetadataAdapter metadataAdapter
-
inputsFilter
private java.util.function.Predicate<java.lang.String> inputsFilter
-
serializer
private Serializer serializer
-
executorService
private java.util.concurrent.ExecutorService executorService
-
classLoaders
private java.lang.ClassLoader[] classLoaders
-
expandSuperTypes
private boolean expandSuperTypes
-
-
Method Detail
-
build
public static ConfigurationBuilder build(java.lang.Object... params)
constructs aConfigurationBuilder
using the given parameters, in a non statically typed way. that is, each element inparams
is guessed by it's type and populated into the configuration.String
- add urls usingClasspathHelper.forPackage(String, ClassLoader...)
()}Class
- add urls usingClasspathHelper.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 above
FilterBuilder
will be set according to given packages.use any parameter type in any order. this constructor uses instanceof on each param and instantiate a
ConfigurationBuilder
appropriately.
-
forPackages
public ConfigurationBuilder forPackages(java.lang.String... packages)
-
getScanners
public java.util.Set<Scanner> getScanners()
Description copied from interface:Configuration
the scanner instances used for scanning different metadata- Specified by:
getScanners
in interfaceConfiguration
-
setScanners
public ConfigurationBuilder setScanners(Scanner... scanners)
set the scanners instances for scanning different metadata
-
addScanners
public ConfigurationBuilder addScanners(Scanner... scanners)
set the scanners instances for scanning different metadata
-
getUrls
public java.util.Set<java.net.URL> getUrls()
Description copied from interface:Configuration
the urls to be scanned- Specified by:
getUrls
in interfaceConfiguration
-
setUrls
public ConfigurationBuilder setUrls(java.util.Collection<java.net.URL> urls)
set the urls to be scanneduse
ClasspathHelper
convenient methods to get the relevant urls
-
setUrls
public ConfigurationBuilder setUrls(java.net.URL... urls)
set the urls to be scanneduse
ClasspathHelper
convenient methods to get the relevant urls
-
addUrls
public ConfigurationBuilder addUrls(java.util.Collection<java.net.URL> urls)
add urls to be scanneduse
ClasspathHelper
convenient methods to get the relevant urls
-
addUrls
public ConfigurationBuilder addUrls(java.net.URL... urls)
add urls to be scanneduse
ClasspathHelper
convenient methods to get the relevant urls
-
getMetadataAdapter
public MetadataAdapter getMetadataAdapter()
returns the metadata adapter. if javassist library exists in the classpath, this method returnsJavassistAdapter
otherwise defaults toJavaReflectionAdapter
.the
JavassistAdapter
is preferred in terms of performance and class loading.- Specified by:
getMetadataAdapter
in interfaceConfiguration
-
setMetadataAdapter
public ConfigurationBuilder setMetadataAdapter(MetadataAdapter metadataAdapter)
sets the metadata adapter used to fetch metadata from classes
-
getInputsFilter
public java.util.function.Predicate<java.lang.String> getInputsFilter()
Description copied from interface:Configuration
get the fully qualified name filter used to filter types to be scanned- Specified by:
getInputsFilter
in interfaceConfiguration
-
setInputsFilter
public void setInputsFilter(java.util.function.Predicate<java.lang.String> inputsFilter)
sets the input filter for all resources to be scanned.supply a
Predicate
or use theFilterBuilder
-
filterInputsBy
public ConfigurationBuilder filterInputsBy(java.util.function.Predicate<java.lang.String> inputsFilter)
sets the input filter for all resources to be scanned.supply a
Predicate
or use theFilterBuilder
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
Description copied from interface:Configuration
executor service used to scan files. if null, scanning is done in a simple for loop- Specified by:
getExecutorService
in interfaceConfiguration
-
setExecutorService
public ConfigurationBuilder setExecutorService(java.util.concurrent.ExecutorService executorService)
sets the executor service used for scanning.
-
useParallelExecutor
public ConfigurationBuilder useParallelExecutor()
sets the executor service used for scanning to ThreadPoolExecutor with core size asRuntime.availableProcessors()
default is ThreadPoolExecutor with a single core
-
useParallelExecutor
public ConfigurationBuilder useParallelExecutor(int availableProcessors)
sets the executor service used for scanning to ThreadPoolExecutor with core size as the given availableProcessors parameter. the executor service spawns daemon threads by default.default is ThreadPoolExecutor with a single core
-
getSerializer
public Serializer getSerializer()
Description copied from interface:Configuration
the default serializer to use when saving Reflection- Specified by:
getSerializer
in interfaceConfiguration
-
setSerializer
public ConfigurationBuilder setSerializer(Serializer serializer)
sets the serializer used when issuingReflections.save(java.lang.String)
-
getClassLoaders
public java.lang.ClassLoader[] getClassLoaders()
get class loader, might be used for scanning or resolving methods/fields- Specified by:
getClassLoaders
in interfaceConfiguration
-
shouldExpandSuperTypes
public boolean shouldExpandSuperTypes()
Description copied from interface:Configuration
if true (default), expand super types after scanning, for super types that were not scanned.- Specified by:
shouldExpandSuperTypes
in interfaceConfiguration
-
setExpandSuperTypes
public ConfigurationBuilder setExpandSuperTypes(boolean expandSuperTypes)
if set to true, Reflections will expand super types after scanning.
-
setClassLoaders
public void setClassLoaders(java.lang.ClassLoader[] classLoaders)
set class loader, might be used for resolving methods/fields
-
addClassLoader
public ConfigurationBuilder addClassLoader(java.lang.ClassLoader classLoader)
add class loader, might be used for resolving methods/fields
-
addClassLoaders
public ConfigurationBuilder addClassLoaders(java.lang.ClassLoader... classLoaders)
add class loader, might be used for resolving methods/fields
-
addClassLoaders
public ConfigurationBuilder addClassLoaders(java.util.Collection<java.lang.ClassLoader> classLoaders)
add class loader, might be used for resolving methods/fields
-
-