ConfigBuilder
Defines a builder for configuration objects. It allows for incremental configuration and override by providing a base configuration object and applying modifications to it.
The configuration process is as follows:
Begin with a default or initial (base) configuration object;
Pass this configuration to a configuration builder;
On top of the builder, apply the desired configuration properties;
Generate a new configuration from the builder;
If further modifications are needed, pass the new configuration back to the builder, which will use it as the base configuration;
Repeat the process until the desired configuration is achieved.
Additionally, the builder also has the additional responsibility of validating the configuration properties before a configuration is generated.
Parameters
the type of the configuration object to be built