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)
Creates a
ImmutableConfiguration object which wraps the specified ConfigurationBuilder . |
BuilderConfigurationWrapperFactory.EventSourceSupport |
getEventSourceSupport()
Gets 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–2022 The Apache Software Foundation. All rights reserved.