# Interface ISyncInfoSetChangeListener

public interface ISyncInfoSetChangeListener
Classes which implement this interface provide methods that deal with the change events that are generated by a `SyncInfoSet`.

Implementors of this interface it can be added to a sync info set using the `addSyncSetChangedListener` method and removed using the `removeSyncSetChangedListener` method.

The originating sync set holds modification locks on the sync info set to ensure that no more changes occur until after the current change event is processed. The implementors of this interface must not modify the set within the scope of the listener's methods. If modifications are attempted a runtime exception will occur.

Since:
  3.0
See Also:
  - `ISyncInfoSetChangeEvent`

## Method Summary

Modifier and Type
Method
Description
`void`
`syncInfoChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor)`
Sent when a `SyncInfoSet` changes.
`void`
`syncInfoSetErrors(SyncInfoSet set, ITeamStatus[] errors, IProgressMonitor monitor)`
This method is called when errors have occurred calculating the `SyncInfo` for a resource.
`void`
`syncInfoSetReset(SyncInfoSet set, IProgressMonitor monitor)`
Sent when the contents of a `SyncInfoSet` have been reset or the listener has been connected to the set for the first time using `SyncInfoSet#connect(ISyncInfoSetChangeListener, IProgressMonitor)`.

## Method Details

### syncInfoSetReset

void syncInfoSetReset(SyncInfoSet set, IProgressMonitor monitor)
Sent when the contents of a `SyncInfoSet` have been reset or the listener has been connected to the set for the first time using `SyncInfoSet#connect(ISyncInfoSetChangeListener, IProgressMonitor)`. Listeners should discard any state they have accumulated from the originating sync info set and re-obtain their state from the set. The originating sync set will be locked for modification when this method is called.

Clients should not modify the set within this method and other threads that try to modify the set will be blocked until the reset is processed.

Parameters:
  `set` - the originating `SyncInfoSet`

### syncInfoChanged

void syncInfoChanged(ISyncInfoSetChangeEvent event, IProgressMonitor monitor)
Sent when a `SyncInfoSet` changes. For example, when a resource's synchronization state changes. The originating sync set will be locked for modification when this method is called. Clients should not modify the set within this method and other threads that try to modify the set will be blocked until the change is processed.

If the originating set is an instance of `SyncInfoTree` then the event will be an instance of `ISyncInfoTreeChangeEvent`. Clients can determine this using an `instancof` check.

Parameters:
  `event` - an event containing information about the change.

### syncInfoSetErrors

void syncInfoSetErrors(SyncInfoSet set, ITeamStatus[] errors, IProgressMonitor monitor)
This method is called when errors have occurred calculating the `SyncInfo` for a resource. The resource associated with the error is available from the `ITeamStatus`. This event only provides the latest errors that occurred. An array of all errors can be retrieved directly from the set.

Parameters:
  `set` - the originating `SyncInfoSet`
  `errors` - the errors that occurred during the latest set modifications
  `monitor` - a progress monitor