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(com.google.common.base.Predicate<String> inputsFilter)
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.
|
com.google.common.base.Predicate<String> |
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.
|
ConfigurationBuilder |
setExpandSuperTypes(boolean expandSuperTypes)
if set to true, Reflections will expand super types after scanning.
|
void |
setInputsFilter(com.google.common.base.Predicate<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 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
|
boolean |
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 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(@Nullable 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 aboveFilterBuilder
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.
public ConfigurationBuilder forPackages(String... packages)
@Nonnull public Set<Scanner> getScanners()
Configuration
getScanners
in interface Configuration
public ConfigurationBuilder setScanners(@Nonnull Scanner... scanners)
public ConfigurationBuilder addScanners(Scanner... scanners)
@Nonnull public Set<URL> getUrls()
Configuration
getUrls
in interface Configuration
public ConfigurationBuilder setUrls(@Nonnull 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 Configuration
public ConfigurationBuilder setMetadataAdapter(MetadataAdapter metadataAdapter)
@Nullable public com.google.common.base.Predicate<String> getInputsFilter()
Configuration
getInputsFilter
in interface Configuration
public void setInputsFilter(@Nullable com.google.common.base.Predicate<String> inputsFilter)
supply a Predicate
or use the FilterBuilder
public ConfigurationBuilder filterInputsBy(com.google.common.base.Predicate<String> inputsFilter)
supply a Predicate
or use the FilterBuilder
@Nullable public ExecutorService getExecutorService()
Configuration
getExecutorService
in interface Configuration
public ConfigurationBuilder setExecutorService(@Nullable 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()
Configuration
getSerializer
in interface Configuration
public ConfigurationBuilder setSerializer(Serializer serializer)
Reflections.save(java.lang.String)
@Nullable public ClassLoader[] getClassLoaders()
getClassLoaders
in interface Configuration
public boolean shouldExpandSuperTypes()
Configuration
shouldExpandSuperTypes
in interface Configuration
public ConfigurationBuilder setExpandSuperTypes(boolean expandSuperTypes)
public void setClassLoaders(@Nullable ClassLoader[] classLoaders)
public ConfigurationBuilder addClassLoader(ClassLoader classLoader)
public ConfigurationBuilder addClassLoaders(ClassLoader... classLoaders)
public ConfigurationBuilder addClassLoaders(Collection<ClassLoader> classLoaders)
Copyright © 2017. All rights reserved.