Package org.eclipse.team.core.synchronize
Package Specification
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).
-
ClassDescriptionA specialized
SyncInfoFilter
that does not require a progress monitor.SelectsSyncInfo
which match all child filters.SelectsSyncInfo
instances that are auto-mergable.An abstract class which contains a set ofFastSyncInfoFilter
instances.SelectsSyncInfo
that match any of the child filters.SelectsSyncInfo
instances that are pseudo-conflicts.SelectsSyncInfo
whose change type match those of the filter.SelectsSyncInfo
whose change direction match those of the filter.An event generated when aSyncInfoSet
collection is changed.Classes which implement this interface provide methods that deal with the change events that are generated by aSyncInfoSet
.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.ASyncInfoFilter
tests aSyncInfo
for inclusion, typically in aSyncInfoSet
.SelectsSyncInfo
whose local and remote contents match.A dynamic collection ofSyncInfo
objects that provides change notification to registered listeners.This event keeps track of the changes in aSyncInfoSet
Provides addition API for accessing theSyncInfo
in the set through their resource's hierarchical relationships.