# Class AbstractSourceProvider

java.lang.Object
org.eclipse.ui.AbstractSourceProvider

All Implemented Interfaces:
  `ISourceProvider`

public abstract class AbstractSourceProvider extends Object implements ISourceProvider

An implementation of `ISourceProvider` that provides listener support. Subclasses need only call `fireSourceChanged` whenever appropriate.

Since:
  3.1

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static boolean`
`DEBUG`
Whether source providers should print out debugging information to the console when events arrive.

## Constructor Summary

Constructors
Constructor
Description
`AbstractSourceProvider()`

## Method Summary

Modifier and Type
Method
Description
`final void`
`addSourceProviderListener(ISourceProviderListener listener)`
Adds a listener to this source provider.
`protected final void`
`fireSourceChanged(int sourcePriority, String sourceName, Object sourceValue)`
Notifies all listeners that a single source has changed.
`protected final void`
`fireSourceChanged(int sourcePriority, Map sourceValuesByName)`
Notifies all listeners that multiple sources have changed.
`void`
`initialize(IServiceLocator locator)`
This method is called when the source provider is instantiated by `org.eclipse.ui.services`.
`protected final void`
`logDebuggingInfo(String message)`
Logs a debugging message in an appropriate manner.
`final void`
`removeSourceProviderListener(ISourceProviderListener listener)`
Removes a listener from this source provider.

### Methods inherited from class Object

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

### Methods inherited from interface ISourceProvider

`dispose, getCurrentState, getProvidedSourceNames`

## Field Details

### DEBUG

protected static boolean DEBUG
Whether source providers should print out debugging information to the console when events arrive.

Since:
  3.2

## Constructor Details

### AbstractSourceProvider

public AbstractSourceProvider()

## Method Details

### addSourceProviderListener

public final void addSourceProviderListener(ISourceProviderListener listener)
Description copied from interface: `ISourceProvider`
Adds a listener to this source provider. This listener will be notified whenever the corresponding source changes.

Specified by:
  `addSourceProviderListener` in interface `ISourceProvider`
Parameters:
  `listener` - The listener to add; must not be `null`.

### fireSourceChanged

protected final void fireSourceChanged(int sourcePriority, String sourceName, Object sourceValue)
Notifies all listeners that a single source has changed.

Parameters:
  `sourcePriority` - The source priority that has changed.
  `sourceName` - The name of the source that has changed; must not be `null`.
  `sourceValue` - The new value for the source; may be `null`.

### fireSourceChanged

protected final void fireSourceChanged(int sourcePriority, Map sourceValuesByName)
Notifies all listeners that multiple sources have changed.

Parameters:
  `sourcePriority` - The source priority that has changed.
  `sourceValuesByName` - The map of source names (`String`) to source values (`Object`) that have changed; must not be `null`. The names must not be `null`, but the values may be `null`.

### logDebuggingInfo

protected final void logDebuggingInfo(String message)
Logs a debugging message in an appropriate manner. If the message is `null` or the `DEBUG` is `false`, then this method does nothing.

Parameters:
  `message` - The debugging message to log; if `null`, then nothing is logged.
Since:
  3.2

### removeSourceProviderListener

public final void removeSourceProviderListener(ISourceProviderListener listener)
Description copied from interface: `ISourceProvider`
Removes a listener from this source provider. This listener will be notified whenever the corresponding source changes.

Specified by:
  `removeSourceProviderListener` in interface `ISourceProvider`
Parameters:
  `listener` - The listener to remove; must not be `null`.

### initialize

public void initialize(IServiceLocator locator)
This method is called when the source provider is instantiated by `org.eclipse.ui.services`. Clients may override this method to perform initialization.

Parameters:
  `locator` - The global service locator. It can be used to retrieve services like the IContextService
Since:
  3.4