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  trueif a value for this key has been set for the given option values orfalseif 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.