# Interface ISynchronizeManager

public interface ISynchronizeManager
Manages synchronization view participants. Clients can programmatically add or remove participant instances from this manager. Managed participants are available to clients whereas un-managed participants can still exist but won't be available generally available to clients until explicitly added to the manager.

Participants added to the manager will benefit from the manager's lifecycle support. The participants will automatically have their `init` method and `dispose` called when the manager starts and is shutdown and if persistable will be allowed to save their state on shutdown.

Clients are not intended to implement this interface.

Since:
  3.0
See Also:
  - `ISynchronizeParticipant`
  - `TeamUI.getSynchronizeManager()`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Object`
`FAMILY_SYNCHRONIZE_OPERATION`
Constant identifying the job family identifier for a background job that affects the synchronization state of resources.

## Method Summary

Modifier and Type
Method
Description
`void`
`addSynchronizeParticipantListener(ISynchronizeParticipantListener listener)`
Registers the given listener for participant notifications.
`void`
`addSynchronizeParticipants(ISynchronizeParticipant[] participants)`
Adds the given participants to the synchronize manager.
`ISynchronizeParticipantReference[]`
`get(String id)`
Returns the registered synchronize participants with the given type id.
`ISynchronizeParticipantReference`
`get(String id, String secondaryId)`
Returns the registered synchronize participants with the given type id and instance id.
`ISynchronizeParticipantDescriptor`
`getParticipantDescriptor(String id)`
Returns the participant descriptor for the given participant type id or `null` if a descriptor is not found for that id.
`ISynchronizeParticipantReference[]`
`getSynchronizeParticipants()`
Returns a collection of synchronize participant references registered with the synchronize manager.
`void`
`removeSynchronizeParticipantListener(ISynchronizeParticipantListener listener)`
Removes the given listener for participant notifications.
`void`
`removeSynchronizeParticipants(ISynchronizeParticipant[] participants)`
Removes the given participants from the synchronize manager.
`ISynchronizeView`
`showSynchronizeViewInActivePage()`
Opens the synchronize view in the perspective defined by the user in the team synchronize preferences.

## Field Details

### FAMILY_SYNCHRONIZE_OPERATION

static final Object FAMILY_SYNCHRONIZE_OPERATION
Constant identifying the job family identifier for a background job that affects the synchronization state of resources. All clients that schedule background jobs that affect synchronization state should include this job family in their implementation of `belongsTo`.

See Also:
  - `Job.belongsTo(java.lang.Object)`

## Method Details

### addSynchronizeParticipantListener

void addSynchronizeParticipantListener(ISynchronizeParticipantListener listener)
Registers the given listener for participant notifications. Has no effect if an identical listener is already registered.

Parameters:
  `listener` - listener to register

### removeSynchronizeParticipantListener

void removeSynchronizeParticipantListener(ISynchronizeParticipantListener listener)
Removes the given listener for participant notifications. Has no effect if an identical listener is not already registered.

Parameters:
  `listener` - listener to remove

### addSynchronizeParticipants

void addSynchronizeParticipants(ISynchronizeParticipant[] participants)
Adds the given participants to the synchronize manager. Has no effect for equivalent participants are already registered. The participants will be added to any existing synchronize views.

Parameters:
  `participants` - participants to add

### removeSynchronizeParticipants

void removeSynchronizeParticipants(ISynchronizeParticipant[] participants)
Removes the given participants from the synchronize manager. If the participants are being displayed in any synchronize views, their associated pages will be closed.

Parameters:
  `participants` - participants to remove

### getSynchronizeParticipants

ISynchronizeParticipantReference[] getSynchronizeParticipants()
Returns a collection of synchronize participant references registered with the synchronize manager.

Returns:
  a collection of synchronize participants registered with the synchronize manager.

### get

ISynchronizeParticipantReference[] get(String id)
Returns the registered synchronize participants with the given type id. It is possible to have multiple instances of the same participant type.

Parameters:
  `id` - the type identifier for the participant
Returns:
  the registered synchronize participants with the given id, or an empty list if there are none with that id registered.

### get

ISynchronizeParticipantReference get(String id, String secondaryId)
Returns the registered synchronize participants with the given type id and instance id.

Parameters:
  `id` - the type identifier for the participant
  `secondaryId` - the instance identifier for this participant type or `null` if this participant doesn't support multiple instances.
Returns:
  the registered synchronize participants with the given id, or `null` if none with that id is not registered.

### showSynchronizeViewInActivePage

ISynchronizeView showSynchronizeViewInActivePage()
Opens the synchronize view in the perspective defined by the user in the team synchronize preferences.

Returns:
  the opened synchronize view or `null` if it can't be opened.

### getParticipantDescriptor

ISynchronizeParticipantDescriptor getParticipantDescriptor(String id)
Returns the participant descriptor for the given participant type id or `null` if a descriptor is not found for that id.

Parameters:
  `id` - the participant id
Returns:
  the participant descriptor for the given participant id or `null` if a descriptor is not found for that id.