Class OptionKey<T>

java.lang.Object
org.graalvm.options.OptionKey<T>

public final class OptionKey<T> extends Object
Represents the option key for an option specification.
Since:
19.0
  • Constructor Details

    • OptionKey

      public OptionKey(T defaultValue)
      Constructs a new option key given a default value. Throws IllegalArgumentException if no default OptionType could be resolved for the given type. The default value must not be null.
      Since:
      19.0
    • OptionKey

      public OptionKey(T defaultValue, OptionType<T> type)
      Constructs a new option key given a default value and option key.
      Since:
      19.0
  • Method Details

    • mapOf

      public static <V> OptionKey<OptionMap<V>> mapOf(Class<V> valueClass)
      Constructs a new option key to group/accumulate options with common prefixes. This type of options allow to collect key=value pairs whose keys are unknown beforehand e.g. user defined properties. See 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.
      Since:
      19.2
    • getType

      public OptionType<T> getType()
      Returns the option type of this key.
      Since:
      19.0
    • getDefaultValue

      public T getDefaultValue()
      Returns the default value for this option.
      Since:
      19.0
    • getValue

      public T getValue(OptionValues values)
      Returns the value of this key given the values.
      Since:
      19.0
    • hasBeenSet

      public 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.
      Since:
      19.0