This package specifies the API for managing the synchronization state between the local workspace resources and a corresponding variants of those resources. The classes in this package can be used by Subscribers (see the org.eclipse.team.core.subscribers package) or others. The classes are roughly divided into three categories:
- describing the synchronization state of a one or more resources,
- notifying interested parties of changes in the synchronization state.
- filtering a set of resource based on a sync state criteria
Describing the synchronization state of resources
The following classes are provided to accumulate (and possibly filter) the synchronization state of one or more resources.
- SyncInfo: node which maps a local resource to a corresponding variant resource (and a base resource for three-way compare) and descibes the synchronization state of those resources (e.g. in-sync or incoming-change).
- SyncInfoSet: a set which contains the out-of-sync SyncInfo for multiple local resources.
- SyncInfoTree: a specialized set optimized for hierarchical resource based access (e.g. to obtain all out-of-sync children of a particular local resource).
Notifying interested parties of sync info set changes
Interested parties can register with a SyncInfoSet in order to receive notification when a set changes.
- ISyncInfoSetChangeListener: implementors of this interface can be registered with a SyncInfoSet in order to recieve notification when the contents of the set change.
- ISyncInfoSetChangeEvent: the type of the events generated by a SyncInfoSet
- ISyncInfoTreeChangeEvent: specialized ISyncInfoSetChangeEvent generated by SyncInfoTree which includes notification of resource subtree aditions and removals.
Sync info filtering
There are also some additional classes provided to help manage SyncInfoSets
- SyncInfoFilter: a filter that can be used to test SyncInfo. Long running tests are supported via an IProgressMonitor. SyncInfoSet has API for selecting and rejecting SyncInfo based on a provided filter.
- FastSyncInfoFilter: a specialized filter that does not support the ue of a progress monitor
Several common filters are provided as inner classes of the two filter classes for doing synchronization state tests and filter compounding (and, or, not).
SyncInfoFilterthat does not require a progress monitor.Selects
SyncInfowhich match all child filters.Selects
SyncInfoinstances that are auto-mergable.An abstract class which contains a set of
SyncInfothat match any of the child filters.Selects
SyncInfoinstances that are pseudo-conflicts.Selects
SyncInfowhose change type match those of the filter.Selects
SyncInfowhose change direction match those of the filter.An event generated when a
SyncInfoSetcollection is changed.Classes which implement this interface provide methods that deal with the change events that are generated by a
SyncInfoSet.This is a change event that provides access to changes in subtrees that contain the out-of-sync resources.Describes the synchronization of a local resource relative to a remote resource variant.A
SyncInfofor inclusion, typically in a
SyncInfowhose local and remote contents match.A dynamic collection of
SyncInfoobjects that provides change notification to registered listeners.This event keeps track of the changes in a
SyncInfoSetProvides addition API for accessing the
SyncInfoin the set through their resource's hierarchical relationships.