Package ghidra.app.util

# Class Option

java.lang.Object
ghidra.app.util.Option

public class Option extends Object
Container class to hold a name, value, and class of the value.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Option(String name, Class<?> valueClass)`
  Construct a new Option.
  `Option(String name, Class<?> valueClass, Object value, String arg, String group)`
  Construct a new Option
  `Option(String name, Object value)`
  Construct a new Option.
  `Option(String name, Object value, Class<?> valueClass, String arg)`
  Construct a new Option
  `Option(String group, String name, Object value)`
  Construct a new Option.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Option`
  `copy()`
  Creates a copy of this Option object.
  `String`
  `getArg()`
  Return the command line argument for this Option.
  `Component`
  `getCustomEditorComponent()`
  Override if you want to provide a custom widget for selecting your options.
  `String`
  `getGroup()`
  Return the group name for this option; may be null if group was not specified.
  `String`
  `getName()`
  Return the name of this Option.
  `Object`
  `getValue()`
  Return the value of this Option.
  `Class<?>`
  `getValueClass()`
  Return the class of the value for this Option.
  `boolean`
  `parseAndSetValueByType(String str, AddressFactory addressFactory)`
  Set the value for this option by parsing the given string and converting it to the option's type.
  `void`
  `setOptionListener(OptionListener listener)`
  `void`
  `setValue(Object object)`
  Set the value for this option.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Option

    public Option(String name, Object value)
    Construct a new Option.
    Parameters:
      `name` - name of the option
      `value` - value of the option. Value can't be null with this constructor.
    Throws:
      `IllegalArgumentException` - if value is null

  - ### Option

    public Option(String group, String name, Object value)
    Construct a new Option.
    Parameters:
      `group` - Name for group of options
      `name` - name of the option
      `value` - value of the option
    Throws:
      `IllegalArgumentException` - if value is null

  - ### Option

    public Option(String name, Class<?> valueClass)
    Construct a new Option.
    Parameters:
      `name` - name of the option
      `valueClass` - class of the option's value

  - ### Option

    public Option(String name, Object value, Class<?> valueClass, String arg)
    Construct a new Option
    Parameters:
      `name` - name of the option
      `value` - value of the option
      `valueClass` - class of the option's value
      `arg` - the option's command line argument

  - ### Option

    public Option(String name, Class<?> valueClass, Object value, String arg, String group)
    Construct a new Option
    Parameters:
      `name` - name of the option
      `valueClass` - class of the option's value
      `value` - value of the option
      `arg` - the option's command line argument
      `group` - Name for group of options

- ## Method Details

  - ### setOptionListener

    public void setOptionListener(OptionListener listener)

  - ### getCustomEditorComponent

    public Component getCustomEditorComponent()
    Override if you want to provide a custom widget for selecting your options.

    Important! If you override this you MUST also override the `copy()` method so it returns a new instance of your custom editor.

    Returns:
      the custom editor

  - ### getValueClass

    public Class<?> getValueClass()
    Return the class of the value for this Option.

  - ### getGroup

    public String getGroup()
    Return the group name for this option; may be null if group was not specified.

  - ### getName

    public String getName()
    Return the name of this Option.

  - ### getValue

    public Object getValue()
    Return the value of this Option.

  - ### setValue

    public void setValue(Object object)
    Set the value for this option.
    Parameters:
      `object` - value of this option

  - ### parseAndSetValueByType

    public boolean parseAndSetValueByType(String str, AddressFactory addressFactory)
    Set the value for this option by parsing the given string and converting it to the option's type. Fails if this option doesn't have a type associated with it, or if an unsupported type is needed to be parsed.
    Parameters:
      `str` - The value to set, in string form.
      `addressFactory` - An address factory to use for when the option trying to be set is an Address. If null, an exception will be thrown for Address type options.
    Returns:
      True if the value was successfully parsed and set; otherwise, false.

  - ### getArg

    public String getArg()
    Return the command line argument for this Option.
    Returns:
      The command line argument for this Option. Could be null.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### copy

    public Option copy()
    Creates a copy of this Option object.
    Returns:
      a copy of this Option object.