Package ghidra.framework.options

# Class ToolOptions

java.lang.Object
ghidra.framework.options.AbstractOptions
ghidra.framework.options.ToolOptions

All Implemented Interfaces:
  `Options`

public class ToolOptions extends AbstractOptions
Class to manage a set of option name/value pairs for a category.

The values may be primitives or `WrappedOption`s that are containers for primitive components.

The name/value pair has an owner so that the option name can be removed from the Options object when it is no longer being used.

Note: Property Names can have `Options.DELIMITER` characters to create a hierarchy. So too can sub-options accessed via `AbstractOptions.getOptions(String)`.

The Options Dialog shows the delimited hierarchy in tree format.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.framework.options.AbstractOptions

  `AbstractOptions.AliasBinding`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Set<Class<?>>`
  `PRIMITIVE_CLASSES`
  `static final Set<Class<?>>`
  `WRAPPABLE_CLASSES`
  `static final String`
  `XML_ELEMENT_NAME`

  ### Fields inherited from class ghidra.framework.options.AbstractOptions

  `aliasMap, categoryHelpMap, listeners, name, optionsEditorMap, SUPPORTED_CLASSES, themeListener, themeToOptionMap, valueMap`

  ### Fields inherited from interface ghidra.framework.options.Options

  `DELIMITER, DELIMITER_STRING, ILLEGAL_DELIMITER`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ToolOptions(String name)`
  `ToolOptions(org.jdom.Element root)`
  Construct a new Options object from the given XML element.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addOptionsChangeListener(OptionsChangeListener l)`
  Add the options change listener.
  `ToolOptions`
  `copy()`
  `void`
  `copyOptions(Options newOptions)`
  Adds all the options name/value pairs to this Options.
  `protected Option`
  `createRegisteredOption(String optionName, OptionType type, String description, HelpLocation help, Object defaultValue, PropertyEditor editor)`
  `protected Option`
  `createUnregisteredOption(String optionName, OptionType type, Object defaultValue)`
  `void`
  `dispose()`
  `boolean`
  `equals(Object obj)`
  `org.jdom.Element`
  `getXmlRoot(boolean includeDefaultBindings)`
  Return an XML element for the option names and values.
  `int`
  `hashCode()`
  `protected boolean`
  `notifyOptionChanged(String optionName, Object oldValue, Object newValue)`
  `void`
  `registerOptions(ToolOptions oldOptions)`
  `void`
  `removeOptionsChangeListener(OptionsChangeListener l)`
  Remove the options change listener.
  `void`
  `removeUnusedOptions()`
  Check each option to ensure that an owner is still registered for it; if there is no owner, then remove the option.
  `void`
  `takeListeners(ToolOptions oldOptions)`
  `void`
  `validateOptions()`

  ### Methods inherited from class ghidra.framework.options.AbstractOptions

  `contains, createAlias, findPropertyEditor, getActionTrigger, getBoolean, getByteArray, getCategoryHelpLocation, getChildOptions, getColor, getCustomOption, getDate, getDefaultValue, getDefaultValueAsString, getDescription, getDouble, getEnum, getFile, getFloat, getFont, getHelpLocation, getID, getInt, getKeyStroke, getLeafOptionNames, getLong, getName, getObject, getOption, getOptionNames, getOptions, getOptionsEditor, getOptionsEditor, getOptionsHelpLocation, getPropertyEditor, getRegisteredPropertyEditor, getString, getType, getValueAsString, isAlias, isDefaultValue, isRegistered, putObject, putObject, registerOption, registerOption, registerOption, registerOptionsEditor, registerOptionsEditor, registerThemeColorBinding, registerThemeFontBinding, removeOption, restoreDefaultValue, restoreDefaultValues, setActionTrigger, setBoolean, setByteArray, setCategoryHelpLocation, setColor, setCustomOption, setDate, setDouble, setEnum, setFile, setFloat, setFont, setInt, setKeyStroke, setLong, setName, setOptionsHelpLocation, setString, toString`

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

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

  ### Methods inherited from interface ghidra.framework.options.Options

  `registerOption, registerOptionsEditor`

- ## Field Details

  - ### PRIMITIVE_CLASSES

    public static final Set<Class<?>> PRIMITIVE_CLASSES

  - ### WRAPPABLE_CLASSES

    public static final Set<Class<?>> WRAPPABLE_CLASSES

  - ### XML_ELEMENT_NAME

    public static final String XML_ELEMENT_NAME
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ToolOptions

    public ToolOptions(String name)

  - ### ToolOptions

    public ToolOptions(org.jdom.Element root)
    Construct a new Options object from the given XML element.
    Parameters:
      `root` - XML that contains the set of options to restore

- ## Method Details

  - ### copy

    public ToolOptions copy()

  - ### getXmlRoot

    public org.jdom.Element getXmlRoot(boolean includeDefaultBindings)
    Return an XML element for the option names and values. Note: only those options which have been explicitly set will be included.
    Parameters:
      `includeDefaultBindings` - true to include default key binding values in the xml
    Returns:
      the xml root element

  - ### addOptionsChangeListener

    public void addOptionsChangeListener(OptionsChangeListener l)
    Add the options change listener. NOTE: The Options uses WeakReferences to manage the listeners; this means that you must supply a listener and maintain a handle to it, or else the listener will be garbage collected and will never get called. So for this reason, do not create the listener in an anonymous inner class.
    Parameters:
      `l` - listener to add

  - ### takeListeners

    public void takeListeners(ToolOptions oldOptions)

  - ### removeOptionsChangeListener

    public void removeOptionsChangeListener(OptionsChangeListener l)
    Remove the options change listener.
    Parameters:
      `l` - listener to remove

  - ### removeUnusedOptions

    public void removeUnusedOptions()
    Check each option to ensure that an owner is still registered for it; if there is no owner, then remove the option.

  - ### copyOptions

    public void copyOptions(Options newOptions)
    Adds all the options name/value pairs to this Options.
    Parameters:
      `newOptions` - the new options into which the current options values will be placed

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### validateOptions

    public void validateOptions()

  - ### registerOptions

    public void registerOptions(ToolOptions oldOptions)

  - ### createRegisteredOption

    protected Option createRegisteredOption(String optionName, OptionType type, String description, HelpLocation help, Object defaultValue, PropertyEditor editor)
    Specified by:
      `createRegisteredOption` in class `AbstractOptions`

  - ### createUnregisteredOption

    protected Option createUnregisteredOption(String optionName, OptionType type, Object defaultValue)
    Specified by:
      `createUnregisteredOption` in class `AbstractOptions`

  - ### notifyOptionChanged

    protected boolean notifyOptionChanged(String optionName, Object oldValue, Object newValue)
    Specified by:
      `notifyOptionChanged` in class `AbstractOptions`

  - ### dispose

    public void dispose()
    Overrides:
      `dispose` in class `AbstractOptions`