# Interface ISourceProviderListener

public interface ISourceProviderListener

A listener to changes in a particular source of information. This listener is notified as the source changes. Typically, workbench services will implement this interface, and register themselves as listeners to the `ISourceProvider` instances that are registered with them.

Since:
  3.1
See Also:
  - `ISources`
  - `ISourceProvider`

## Method Summary

Modifier and Type
Method
Description
`void`
`sourceChanged(int sourcePriority, String sourceName, Object sourceValue)`
Handles a change to one source.
`void`
`sourceChanged(int sourcePriority, Map sourceValuesByName)`
Handles a change to multiple sources.

## Method Details

### sourceChanged

void sourceChanged(int sourcePriority, Map sourceValuesByName)
Handles a change to multiple sources. The source priority should be a bit mask indicating the sources. The map will be used to construct the variables on an `IEvaluationContext`

Parameters:
  `sourcePriority` - A bit mask of all the source priorities that have changed.
  `sourceValuesByName` - A mapping of the source names (`String`) to the source values (`Object`). The names should never be `null`, but the values may be. The map must not be `null`, and should contain at least two elements (one for each source).
See Also:
  - `IEvaluationContext`
  - `ISources`

### sourceChanged

void sourceChanged(int sourcePriority, String sourceName, Object sourceValue)
Handles a change to one source. The source priority should indicate the source, and the name-value pair will be used to create an `IEvaluationContext` with a single variable.

Parameters:
  `sourcePriority` - A bit mask of all the source priorities that have changed.
  `sourceName` - The name of the source that changed; must not be `null`.
  `sourceValue` - The new value for that source; may be `null`.
See Also:
  - `IEvaluationContext`
  - `ISources`