Package org.eclipse.handly.ui.preference

# Class ScopedPreferenceStore

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.handly.ui.preference.ScopedPreferenceStore

All Implemented Interfaces:
  `org.eclipse.jface.preference.IPersistentPreferenceStore`, `org.eclipse.jface.preference.IPreferenceStore`

public class ScopedPreferenceStore extends org.eclipse.core.commands.common.EventManager implements org.eclipse.jface.preference.IPersistentPreferenceStore
This class is forked from `org.eclipse.ui.preferences.ScopedPreferenceStore` to fix the memory leak issue described in Bug 239033.

The ScopedPreferenceStore is an IPreferenceStore that uses the scopes provided in org.eclipse.core.runtime.preferences.

A ScopedPreferenceStore does the lookup of a preference based on its search scopes and sets the value of the preference based on its store scope.

The default scope is always included in the search scopes when searching for preference values.

- ## Field Summary

  ### Fields inherited from interface org.eclipse.jface.preference.IPreferenceStore

  `BOOLEAN_DEFAULT_DEFAULT, DOUBLE_DEFAULT_DEFAULT, FALSE, FLOAT_DEFAULT_DEFAULT, INT_DEFAULT_DEFAULT, LONG_DEFAULT_DEFAULT, STRING_DEFAULT_DEFAULT, TRUE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, String qualifier)`
  Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.
  `ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, String qualifier, String defaultQualifierPath)`
  Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)`
  `boolean`
  `contains(String name)`
  `void`
  `firePropertyChangeEvent(String name, Object oldValue, Object newValue)`
  `boolean`
  `getBoolean(String name)`
  `boolean`
  `getDefaultBoolean(String name)`
  `double`
  `getDefaultDouble(String name)`
  `float`
  `getDefaultFloat(String name)`
  `int`
  `getDefaultInt(String name)`
  `long`
  `getDefaultLong(String name)`
  `String`
  `getDefaultString(String name)`
  `double`
  `getDouble(String name)`
  `float`
  `getFloat(String name)`
  `int`
  `getInt(String name)`
  `long`
  `getLong(String name)`
  `org.eclipse.core.runtime.preferences.IEclipsePreferences[]`
  `getPreferenceNodes(boolean includeDefault)`
  Return the preference path to search preferences on.
  `String`
  `getString(String name)`
  `boolean`
  `isDefault(String name)`
  `boolean`
  `needsSaving()`
  `void`
  `putValue(String name, String value)`
  `void`
  `removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)`
  `void`
  `save()`
  `void`
  `setDefault(String name, boolean value)`
  `void`
  `setDefault(String name, double value)`
  `void`
  `setDefault(String name, float value)`
  `void`
  `setDefault(String name, int value)`
  `void`
  `setDefault(String name, long value)`
  `void`
  `setDefault(String name, String defaultObject)`
  `void`
  `setSearchContexts(org.eclipse.core.runtime.preferences.IScopeContext[] scopes)`
  Set the search contexts to scopes.
  `void`
  `setToDefault(String name)`
  `void`
  `setValue(String name, boolean value)`
  `void`
  `setValue(String name, double value)`
  `void`
  `setValue(String name, float value)`
  `void`
  `setValue(String name, int value)`
  `void`
  `setValue(String name, long value)`
  `void`
  `setValue(String name, String value)`

  ### Methods inherited from class org.eclipse.core.commands.common.EventManager

  `addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

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

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

- ## Constructor Details

  - ### ScopedPreferenceStore

    public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, String qualifier, String defaultQualifierPath)
    Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.
    Parameters:
      `context` - the scope to store to
      `qualifier` - the qualifier used to look up the preference node
      `defaultQualifierPath` - the qualifier used when looking up the defaults

  - ### ScopedPreferenceStore

    public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, String qualifier)
    Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.
    Parameters:
      `context` - the scope to store to
      `qualifier` - the qualifier used to look up the preference node

- ## Method Details

  - ### setSearchContexts

    public void setSearchContexts(org.eclipse.core.runtime.preferences.IScopeContext[] scopes)
    Set the search contexts to scopes. When searching for a value the search will be done in the order of scope contexts and will not search the storeContext unless it is in this list.

    If the given list is `null`, then clear this store's search contexts. This means that only this store's scope context and default scope will be used during preference value searching.

    The defaultContext will be added to the end of this list automatically and MUST NOT be included by the user.

    Parameters:
      `scopes` - a list of scope contexts to use when searching, or `null`

  - ### getPreferenceNodes

    public org.eclipse.core.runtime.preferences.IEclipsePreferences[] getPreferenceNodes(boolean includeDefault)
    Return the preference path to search preferences on. This is the list of preference nodes based on the scope contexts for this store. If there are no search contexts set, then return this store's context.

    Whether or not the default context should be included in the resulting list is specified by the `includeDefault` parameter.

    Parameters:
      `includeDefault` - `true` if the default context should be included and `false` otherwise
    Returns:
      IEclipsePreferences[]

  - ### addPropertyChangeListener

    public void addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
    Specified by:
      `addPropertyChangeListener` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### contains

    public boolean contains(String name)
    Specified by:
      `contains` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### firePropertyChangeEvent

    public void firePropertyChangeEvent(String name, Object oldValue, Object newValue)
    Specified by:
      `firePropertyChangeEvent` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getBoolean

    public boolean getBoolean(String name)
    Specified by:
      `getBoolean` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultBoolean

    public boolean getDefaultBoolean(String name)
    Specified by:
      `getDefaultBoolean` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultDouble

    public double getDefaultDouble(String name)
    Specified by:
      `getDefaultDouble` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultFloat

    public float getDefaultFloat(String name)
    Specified by:
      `getDefaultFloat` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultInt

    public int getDefaultInt(String name)
    Specified by:
      `getDefaultInt` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultLong

    public long getDefaultLong(String name)
    Specified by:
      `getDefaultLong` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDefaultString

    public String getDefaultString(String name)
    Specified by:
      `getDefaultString` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getDouble

    public double getDouble(String name)
    Specified by:
      `getDouble` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getFloat

    public float getFloat(String name)
    Specified by:
      `getFloat` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getInt

    public int getInt(String name)
    Specified by:
      `getInt` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getLong

    public long getLong(String name)
    Specified by:
      `getLong` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### getString

    public String getString(String name)
    Specified by:
      `getString` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### isDefault

    public boolean isDefault(String name)
    Specified by:
      `isDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### needsSaving

    public boolean needsSaving()
    Specified by:
      `needsSaving` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### putValue

    public void putValue(String name, String value)
    Specified by:
      `putValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### removePropertyChangeListener

    public void removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
    Specified by:
      `removePropertyChangeListener` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, double value)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, float value)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, int value)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, long value)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, String defaultObject)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setDefault

    public void setDefault(String name, boolean value)
    Specified by:
      `setDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setToDefault

    public void setToDefault(String name)
    Specified by:
      `setToDefault` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, double value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, float value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, int value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, long value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, String value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### setValue

    public void setValue(String name, boolean value)
    Specified by:
      `setValue` in interface `org.eclipse.jface.preference.IPreferenceStore`

  - ### save

    public void save() throws IOException
    Specified by:
      `save` in interface `org.eclipse.jface.preference.IPersistentPreferenceStore`
    Throws:
      `IOException`