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"); // null
Throws 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.