@ThreadSafe public class OptionsMap extends Object implements Serializable
DriverConfigLoader.fromMap(OptionsMap)
.
This class is intended for clients who wish to assemble the driver configuration in memory,
instead of loading it from configuration files. Note that driverDefaults()
can be used
to pre-initialize the map with the driver's built-in defaults.
It functions like a two-dimensional map indexed by execution profile and option. All methods
have a profile-less variant that applies to the default profile, for example get(String,
TypedDriverOption)
and get(TypedDriverOption)
. Options are represented by TypedDriverOption
, which allows this class to enforce additional type-safety guarantees (an
option can only be set to a value of its intended type).
This class is mutable and thread-safe. Live changes are reflected in real time to the driver session(s) that use this configuration.
Constructor and Description |
---|
OptionsMap() |
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(Consumer<OptionsMap> listener)
Registers a listener that will get notified when this object changes.
|
protected Map<String,Map<DriverOption,Object>> |
asRawMap()
Returns a live view of this object, using the driver's untyped
DriverOption . |
static OptionsMap |
driverDefaults()
Creates a new instance that contains the driver's default configuration.
|
boolean |
equals(Object other) |
protected static void |
fillWithDriverDefaults(OptionsMap map) |
<ValueT> ValueT |
get(String profile,
TypedDriverOption<ValueT> option)
Returns the value to which the specified option is mapped in the specified profile, or
null if the option is not defined. |
<ValueT> ValueT |
get(TypedDriverOption<ValueT> option)
Returns the value to which the specified option is mapped in the default profile, or
null if the option is not defined. |
int |
hashCode() |
<ValueT> ValueT |
put(String profile,
TypedDriverOption<ValueT> option,
ValueT value)
Associates the specified value for the specified option, in the specified execution profile.
|
<ValueT> ValueT |
put(TypedDriverOption<ValueT> option,
ValueT value)
Associates the specified value for the specified option, in the default execution profile.
|
<ValueT> ValueT |
remove(String profile,
TypedDriverOption<ValueT> option)
Removes the specified option from the specified profile.
|
<ValueT> ValueT |
remove(TypedDriverOption<ValueT> option)
Removes the specified option from the default profile.
|
boolean |
removeChangeListener(Consumer<OptionsMap> listener)
Unregisters a listener that was previously registered with
addChangeListener(Consumer) . |
@NonNull public static OptionsMap driverDefaults()
This will produce a configuration that is equivalent to the reference.conf
file
bundled with the driver (however, this method does not load any file, and doesn't require
Typesafe config in the classpath).
@Nullable public <ValueT> ValueT put(@NonNull String profile, @NonNull TypedDriverOption<ValueT> option, @NonNull ValueT value)
option
, or null
if the option was
not defined.@Nullable public <ValueT> ValueT put(@NonNull TypedDriverOption<ValueT> option, @NonNull ValueT value)
option
, or null
if the option was
not defined.@Nullable public <ValueT> ValueT get(@NonNull String profile, @NonNull TypedDriverOption<ValueT> option)
null
if the option is not defined.@Nullable public <ValueT> ValueT get(@NonNull TypedDriverOption<ValueT> option)
null
if the option is not defined.@Nullable public <ValueT> ValueT remove(@NonNull String profile, @NonNull TypedDriverOption<ValueT> option)
option
, or null
if the option was
not defined.@Nullable public <ValueT> ValueT remove(@NonNull TypedDriverOption<ValueT> option)
option
, or null
if the option was
not defined.public void addChangeListener(@NonNull Consumer<OptionsMap> listener)
This is mostly for internal use by the driver. Note that listeners are transient, and not
taken into account by equals(Object)
and hashCode()
.
public boolean removeChangeListener(@NonNull Consumer<OptionsMap> listener)
addChangeListener(Consumer)
.true
if the listener was indeed registered for this object.@NonNull protected Map<String,Map<DriverOption,Object>> asRawMap()
DriverOption
.
This is intended for internal usage by the driver. Modifying the resulting map is strongly discouraged, as it could break the type-safety guarantees provided by the public methods.
protected static void fillWithDriverDefaults(OptionsMap map)
Copyright © 2017–2020. All rights reserved.