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).
Interface Summary Interface Description ISyncInfoSetChangeEventAn event generated when a
SyncInfoSetcollection is changed.
ISyncInfoSetChangeListenerClasses which implement this interface provide methods that deal with the change events that are generated by a
ISyncInfoTreeChangeEventThis is a change event that provides access to changes in subtrees that contain the out-of-sync resources.
Class Summary Class Description FastSyncInfoFilterA specialized
SyncInfoFilterthat does not require a progress monitor.
SyncInfowhich match all child filters.
SyncInfoinstances that are auto-mergable.
FastSyncInfoFilter.CompoundSyncInfoFilterAn abstract class which contains a set of
SyncInfothat match any of the child filters.
SyncInfoinstances that are pseudo-conflicts.
SyncInfowhose change type match those of the filter.
SyncInfowhose change direction match those of the filter.
SyncInfoDescribes the synchronization of a local resource relative to a remote resource variant. SyncInfoFilterA
SyncInfofor inclusion, typically in a
SyncInfowhose local and remote contents match.
SyncInfoSetA dynamic collection of
SyncInfoobjects that provides change notification to registered listeners.
SyncInfoSetChangeEventThis event keeps track of the changes in a
SyncInfoTreeProvides addition API for accessing the
SyncInfoin the set through their resource's hierarchical relationships.