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