public class CombinedBuilderParametersImpl extends BasicBuilderParameters implements CombinedBuilderProperties<CombinedBuilderParametersImpl>
A specialized parameters object for a CombinedConfigurationBuilder
.
This class defines methods for setting properties for customizing a builder for combined configurations. Note that some of these properties can also be set in the configuration definition file. If this is the case, the settings in the definition file override the content of this object.
This class is not thread-safe. It is intended that an instance is constructed
and initialized by a single thread during configuration of a
ConfigurationBuilder
.
RESERVED_PARAMETER_PREFIX
Constructor and Description |
---|
CombinedBuilderParametersImpl()
Creates a new instance of
CombinedBuilderParametersImpl . |
Modifier and Type | Method and Description |
---|---|
CombinedBuilderParametersImpl |
clone()
Clones this object.
|
static CombinedBuilderParametersImpl |
fromParameters(Map<String,?> params)
Looks up an instance of this class in the specified parameters map.
|
static CombinedBuilderParametersImpl |
fromParameters(Map<String,?> params,
boolean createIfMissing)
Looks up an instance of this class in the specified parameters map and
optionally creates a new one if none is found.
|
String |
getBasePath()
Returns the base path for relative names of configuration sources.
|
DefaultParametersManager |
getChildDefaultParametersManager()
Returns the
DefaultParametersManager object for initializing
parameter objects for child configuration sources. |
Collection<? extends BuilderParameters> |
getDefaultChildParameters()
Returns a collection with default parameter objects for child
configuration sources.
|
ConfigurationBuilder<? extends HierarchicalConfiguration<?>> |
getDefinitionBuilder()
Returns the
ConfigurationBuilder object for obtaining the
definition configuration. |
BuilderParameters |
getDefinitionBuilderParameters()
Returns the parameters object for the definition configuration builder if
present.
|
Map<String,Object> |
getParameters()
Returns a map with all parameters defined by this objects.
|
Map<String,ConfigurationBuilderProvider> |
getProviders()
Returns an (unmodifiable) map with the currently registered
ConfigurationBuilderProvider objects. |
void |
inheritFrom(Map<String,?> source)
Inherits properties from the specified map.
|
boolean |
isInheritSettings()
Returns the current value of the flag that controls whether the settings
of the parent combined configuration builder should be inherited by its
child configurations.
|
ConfigurationBuilderProvider |
providerForTag(String tagName)
Returns the
ConfigurationBuilderProvider which is registered for
the specified tag name or null if there is no registration for
this tag. |
<D> CombinedBuilderParametersImpl |
registerChildDefaultsHandler(Class<D> paramClass,
DefaultParametersHandler<? super D> handler)
Registers a
DefaultParametersHandler for child configuration sources. |
<D> CombinedBuilderParametersImpl |
registerChildDefaultsHandler(Class<D> paramClass,
DefaultParametersHandler<? super D> handler,
Class<?> startClass)
Registers a
DefaultParametersHandler for child configuration sources
derived from the given start class. |
CombinedBuilderParametersImpl |
registerMissingProviders(CombinedBuilderParametersImpl params)
Registers all
ConfigurationBuilderProvider s in the given
parameters object which have not yet been registered. |
CombinedBuilderParametersImpl |
registerMissingProviders(Map<String,ConfigurationBuilderProvider> providers)
Registers all
ConfigurationBuilderProvider s in the given map to
this object which have not yet been registered. |
CombinedBuilderParametersImpl |
registerProvider(String tagName,
ConfigurationBuilderProvider provider)
Registers the given
ConfigurationBuilderProvider for the
specified tag name. |
CombinedBuilderParametersImpl |
setBasePath(String path)
Sets the base path for this combined configuration builder.
|
CombinedBuilderParametersImpl |
setChildDefaultParametersManager(DefaultParametersManager manager)
Sets a
DefaultParametersManager object responsible for managing the default
parameter handlers to be applied on child configuration sources. |
CombinedBuilderParametersImpl |
setDefinitionBuilder(ConfigurationBuilder<? extends HierarchicalConfiguration<?>> builder)
Sets the
ConfigurationBuilder for the definition configuration. |
CombinedBuilderParametersImpl |
setDefinitionBuilderParameters(BuilderParameters params)
Sets the parameters object for the definition configuration builder.
|
CombinedBuilderParametersImpl |
setInheritSettings(boolean inheritSettings)
Sets a flag whether the child configurations created by a
CombinedConfigurationBuilder should inherit the settings defined
for the builder. |
copyPropertiesFrom, fetchBeanHelper, fetchInterpolatorSpecification, fetchProperty, merge, setBeanHelper, setConfigurationDecoder, setConversionHandler, setDefaultLookups, setInterpolator, setListDelimiterHandler, setLogger, setParentInterpolator, setPrefixLookups, setSynchronizer, setThrowExceptionOnMissing, storeProperty
public CombinedBuilderParametersImpl()
CombinedBuilderParametersImpl
.public static CombinedBuilderParametersImpl fromParameters(Map<String,?> params)
fromParameters(params, false);
params
- the map with parameters (must not be nullNullPointerException
- if the map is nullpublic static CombinedBuilderParametersImpl fromParameters(Map<String,?> params, boolean createIfMissing)
getParameters()
method.params
- the map with parameters (must not be nullcreateIfMissing
- determines the behavior if no instance is found in
the map; if true, a new instance with default settings is
created; if false, null is returnedNullPointerException
- if the map is nullpublic void inheritFrom(Map<String,?> source)
ConfigurationInterpolator
- are tightly connected to a
configuration and cannot be reused in a different context. For other
properties, e.g. a file name, it does not make sense to copy it.
Therefore, an implementation has to be explicit in the properties it
wants to take over. This implementation additionally copies some properties
defined by this class.inheritFrom
in class BasicBuilderParameters
source
- the source properties to inherit frompublic boolean isInheritSettings()
public CombinedBuilderParametersImpl setInheritSettings(boolean inheritSettings)
CombinedBuilderProperties
CombinedConfigurationBuilder
should inherit the settings defined
for the builder. This is typically useful because for configurations
coming from homogeneous sources often similar conventions are used.
Therefore, this flag is true per default.setInheritSettings
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
inheritSettings
- the flag whether settings should be inherited by child
configurationspublic ConfigurationBuilder<? extends HierarchicalConfiguration<?>> getDefinitionBuilder()
ConfigurationBuilder
object for obtaining the
definition configuration.ConfigurationBuilder
public CombinedBuilderParametersImpl setDefinitionBuilder(ConfigurationBuilder<? extends HierarchicalConfiguration<?>> builder)
ConfigurationBuilder
for the definition configuration.
This is the configuration which contains the configuration sources that
form the combined configuration.setDefinitionBuilder
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
builder
- the definition ConfigurationBuilder
public CombinedBuilderParametersImpl registerProvider(String tagName, ConfigurationBuilderProvider provider)
ConfigurationBuilderProvider
for the
specified tag name. This means that whenever this tag is encountered in a
configuration definition file, the corresponding builder provider is
invoked.registerProvider
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
tagName
- the name of the tag (must not be null)provider
- the ConfigurationBuilderProvider
(must not be
null)IllegalArgumentException
- if a required parameter is missingpublic CombinedBuilderParametersImpl registerMissingProviders(Map<String,ConfigurationBuilderProvider> providers)
ConfigurationBuilderProvider
s in the given map to
this object which have not yet been registered. This method is mainly
used for internal purposes: a CombinedConfigurationBuilder
takes
the providers contained in a parameters object and adds all standard
providers. This way it is possible to override a standard provider by
registering a provider object for the same tag name at the parameters
object.providers
- a map with tag names and corresponding providers (must
not be null or contain null entries)IllegalArgumentException
- if the map with providers is null
or contains null entriespublic CombinedBuilderParametersImpl registerMissingProviders(CombinedBuilderParametersImpl params)
ConfigurationBuilderProvider
s in the given
parameters object which have not yet been registered. This method works
like the method with the same name, but the map with providers is
obtained from the passed in parameters object.params
- the parameters object from which to copy providers(must not
be null)IllegalArgumentException
- if the source parameters object is
nullpublic Map<String,ConfigurationBuilderProvider> getProviders()
ConfigurationBuilderProvider
objects.ConfigurationBuilderProvider
objects (the
keys are the tag names)public ConfigurationBuilderProvider providerForTag(String tagName)
ConfigurationBuilderProvider
which is registered for
the specified tag name or null if there is no registration for
this tag.tagName
- the tag namepublic String getBasePath()
public CombinedBuilderParametersImpl setBasePath(String path)
setBasePath
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
path
- the base path for resolving relative file namespublic BuilderParameters getDefinitionBuilderParameters()
public CombinedBuilderParametersImpl setDefinitionBuilderParameters(BuilderParameters params)
setDefinitionBuilder(ConfigurationBuilder)
method). In this
case, a builder for an XML configuration is created and configured with
this parameters object.setDefinitionBuilderParameters
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
params
- the parameters object for the definition configuration
builderpublic Collection<? extends BuilderParameters> getDefaultChildParameters()
addChildParameters()
. The
returned collection is a defensive copy; it can be modified, but this has
no effect on the parameters stored in this object.public DefaultParametersManager getChildDefaultParametersManager()
DefaultParametersManager
object for initializing
parameter objects for child configuration sources. This method never
returns null. If no manager was set, a new instance is created
right now.DefaultParametersManager
for child configuration
sourcespublic CombinedBuilderParametersImpl setChildDefaultParametersManager(DefaultParametersManager manager)
DefaultParametersManager
object responsible for managing the default
parameter handlers to be applied on child configuration sources. When creating
builders for child configuration sources their parameters are initialized using
this DefaultParametersManager
instance. This way, meaningful defaults can
be set. Note that calling this method overrides all
DefaultParametersHandler
objects previously set by one of the
registerChildDefaultsHandler()
methods! So either use this method if a
pre-configured manager object is to be set or call the
registerChildDefaultHandler()
methods with the handlers to be registered
(in the latter case, it is not necessary to set a DefaultParametersManager
explicitly; a default one is created behind the scenes). This implementation stores the passed in manager object. An
already existing manager object (either explicitly set or created on
demand) is overridden. This also removes all default handlers registered
before!setChildDefaultParametersManager
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
manager
- the DefaultParametersManager
public <D> CombinedBuilderParametersImpl registerChildDefaultsHandler(Class<D> paramClass, DefaultParametersHandler<? super D> handler)
DefaultParametersHandler
for child configuration sources. With
this method an arbitrary number of handler objects can be set. When creating
builders for child configuration sources their parameters are initialized by
invoking all matching DefaultParametersHandler
s on them. So, basically the
same mechanism is used for the initialization of parameters for child configuration
sources as for normal parameter objects. This implementation registers the passed in handler at an
internal DefaultParametersManager
instance. If none was set, a
new instance is created now.registerChildDefaultsHandler
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
D
- the type of the handler to be registeredparamClass
- the parameter class supported by the handlerhandler
- the DefaultParametersHandler
to be registeredDefaultParametersManager.registerDefaultsHandler(Class,
DefaultParametersHandler)
public <D> CombinedBuilderParametersImpl registerChildDefaultsHandler(Class<D> paramClass, DefaultParametersHandler<? super D> handler, Class<?> startClass)
DefaultParametersHandler
for child configuration sources
derived from the given start class. This method works like the overloaded variant,
but limits the application of the defaults handler to specific child configuration
sources. This implementation registers the passed in handler at an
internal DefaultParametersManager
instance. If none was set, a
new instance is created now.registerChildDefaultsHandler
in interface CombinedBuilderProperties<CombinedBuilderParametersImpl>
D
- the type of the handler to be registeredparamClass
- the parameter class supported by the handlerhandler
- the DefaultParametersHandler
to be registeredstartClass
- an optional start class in the hierarchy of parameter objects for
which this handler should be appliedDefaultParametersManager.registerDefaultsHandler(Class,
DefaultParametersHandler, Class)
public Map<String,Object> getParameters()
Configuration
implementation class the builder produces. The
values are the corresponding property values. The return value must not
be null. This implementation returns a copy of the internal
parameters map with the values set so far. Collection structures
(e.g. for lookup objects) are stored as defensive copies, so the
original data cannot be modified. This implementation returns a map which contains this
object itself under a specific key. The static fromParameters()
method can be used to extract an instance from a parameters map.getParameters
in interface BuilderParameters
getParameters
in class BasicBuilderParameters
public CombinedBuilderParametersImpl clone()
ConfigurationInterpolator
or
Lookup
s are shared between this and the newly created instance. This implementation also clones the parameters object for
the definition builder if possible.clone
in class BasicBuilderParameters
Copyright © 2001–2020 The Apache Software Foundation. All rights reserved.