Package org.eclipse.handly.ui.preference

## Interface IPreference

- All Known Subinterfaces:
    `IBooleanPreference`, `IDoublePreference`, `IFloatPreference`, `IIntPreference`, `ILongPreference`, `IStringPreference`
  All Known Implementing Classes:
    `AbstractPreference`, `BooleanPreference`, `DoublePreference`, `FloatPreference`, `IntPreference`, `LexicalSortPreference`, `LinkWithEditorPreference`, `LongPreference`, `StringPreference`

      public interface IPreference

  Represents an abstract preference.
  Restriction:
    This interface is not intended to be extended by clients.
  Restriction:
    This interface is not intended to be implemented by clients.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(IPreferenceListener listener)` | Adds the given listener for value change events to this preference.
    `void` | `removeListener​(IPreferenceListener listener)` | Removes the given value change listener from this preference.

- - ### Method Detail

    - #### addListener

          void addListener​(IPreferenceListener listener)

      Adds the given listener for value change events to this preference. Has no effect if the listener is already registered.

      Make sure to remove the listener on the same preference instance.

      Parameters:
        `listener` - not `null`

    - #### removeListener

          void removeListener​(IPreferenceListener listener)

      Removes the given value change listener from this preference. Has no effect if the listener was not already registered.
      Parameters:
        `listener` - not `null`