public class BuilderConfigurationWrapperFactory extends Object
A class that allows the creation of configuration objects wrapping a
ConfigurationBuilder
.
Using this class special ImmutableConfiguration
proxies can be created that
delegate all method invocations to another ImmutableConfiguration
obtained
from a ConfigurationBuilder
. For instance, if there is a
configuration c
wrapping the builder builder
, the call
c.getString(myKey)
is transformed to
builder.getConfiguration().getString(myKey)
.
There are multiple use cases for such a constellation. One example is that
client code can continue working with ImmutableConfiguration
objects while
under the hood builders are used. Another example is that dynamic
configurations can be realized in a transparent way: a client holds a single
configuration (proxy) object, but the underlying builder may return a
different data object on each call.
Modifier and Type | Class and Description |
---|---|
static class |
BuilderConfigurationWrapperFactory.EventSourceSupport
An enumeration class with different options for supporting the
EventSource interface in generated ImmutableConfiguration proxies. |
Constructor and Description |
---|
BuilderConfigurationWrapperFactory()
Creates a new instance of
BuilderConfigurationWrapperFactory
setting the default EventSourceSupport NONE. |
BuilderConfigurationWrapperFactory(BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
Creates a new instance of
BuilderConfigurationWrapperFactory and
sets the property for supporting the EventSource interface. |
Modifier and Type | Method and Description |
---|---|
<T extends ImmutableConfiguration> |
createBuilderConfigurationWrapper(Class<T> ifcClass,
ConfigurationBuilder<? extends T> builder)
Creates a wrapper
ImmutableConfiguration on top of the specified
ConfigurationBuilder . |
static <T extends ImmutableConfiguration> |
createBuilderConfigurationWrapper(Class<T> ifcClass,
ConfigurationBuilder<? extends T> builder,
BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
Returns a
ImmutableConfiguration object which wraps the specified
ConfigurationBuilder . |
BuilderConfigurationWrapperFactory.EventSourceSupport |
getEventSourceSupport()
Returns the level of
EventSource support used when generating
ImmutableConfiguration objects. |
public BuilderConfigurationWrapperFactory(BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
BuilderConfigurationWrapperFactory
and
sets the property for supporting the EventSource
interface.evSrcSupport
- the level of EventSource
supportpublic BuilderConfigurationWrapperFactory()
BuilderConfigurationWrapperFactory
setting the default EventSourceSupport
NONE.public <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(Class<T> ifcClass, ConfigurationBuilder<? extends T> builder)
ImmutableConfiguration
on top of the specified
ConfigurationBuilder
. This implementation delegates to
createBuilderConfigurationWrapper(Class, ConfigurationBuilder, EventSourceSupport)
.T
- the type of the configuration objects returned by this methodifcClass
- the class of the configuration objects returned by this
method; this must be an interface class and must not be
nullbuilder
- the wrapped ConfigurationBuilder
(must not be
null)IllegalArgumentException
- if a required parameter is missingConfigurationRuntimeException
- if an error
occurs when creating the result ImmutableConfiguration
public BuilderConfigurationWrapperFactory.EventSourceSupport getEventSourceSupport()
EventSource
support used when generating
ImmutableConfiguration
objects.EventSource
supportpublic static <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(Class<T> ifcClass, ConfigurationBuilder<? extends T> builder, BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
ImmutableConfiguration
object which wraps the specified
ConfigurationBuilder
. Each access of the configuration is
delegated to a corresponding call on the ImmutableConfiguration
object
managed by the builder. This is a convenience method which allows
creating wrapper configurations without having to instantiate this class.T
- the type of the configuration objects returned by this methodifcClass
- the class of the configuration objects returned by this
method; this must be an interface class and must not be
nullbuilder
- the wrapped ConfigurationBuilder
(must not be
null)evSrcSupport
- the level of EventSource
supportIllegalArgumentException
- if a required parameter is missingConfigurationRuntimeException
- if an error
occurs when creating the result ImmutableConfiguration
Copyright © 2001–2020 The Apache Software Foundation. All rights reserved.