public final class OptionKey<T> extends Object
Constructor and Description |
---|
OptionKey(T defaultValue)
Constructs a new option key given a default value.
|
OptionKey(T defaultValue,
OptionType<T> type)
Constructs a new option key given a default value and option key.
|
Modifier and Type | Method and Description |
---|---|
T |
getDefaultValue()
Returns the default value for this option.
|
OptionType<T> |
getType()
Returns the option type of this key.
|
T |
getValue(OptionValues values)
Returns the value of this key given the
values . |
boolean |
hasBeenSet(OptionValues values)
Returns
true if a value for this key has been set for the given option values or
false if no value has been set. |
static <V> OptionKey<OptionMap<V>> |
mapOf(Class<V> valueClass)
Constructs a new option key to group/accumulate options with common prefixes.
|
public OptionKey(T defaultValue)
IllegalArgumentException
if
no default OptionType
could be resolved
for
the given type. The default value must not be null
.public OptionKey(T defaultValue, OptionType<T> type)
public static <V> OptionKey<OptionMap<V>> mapOf(Class<V> valueClass)
OptionMap
.
Example usage:
@Option.Group("mylang") public class MiscOptions { @Option(help = "User-defined properties", category = OptionCategory.USER) // public static final OptionKey<OptionMap<String>> Properties = OptionKey.mapOf(String.class); ... }Properties can be set using the
mylang.Properties
prefix.
Context context = Context.newBuilder() // .option("mylang.Properties.key", "value") // .option("mylang.Properties.user.name", "guest") // .build();The option map can be consumed as follows:
OptionMap<String> properties = getOptions().get(MiscOptions.Properties); properties.get("key"); // value properties.get("user.name"); // guest properties.get("undefined"); // nullThrows
IllegalArgumentException
if no default OptionType
could be
resolved
for the value type.public OptionType<T> getType()
public T getDefaultValue()
public T getValue(OptionValues values)
values
.public boolean hasBeenSet(OptionValues values)
true
if a value for this key has been set for the given option values or
false
if no value has been set.