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).
-
Interface Summary Interface Description ISyncInfoSetChangeEvent An event generated when aSyncInfoSet
collection is changed.ISyncInfoSetChangeListener Classes which implement this interface provide methods that deal with the change events that are generated by aSyncInfoSet
.ISyncInfoTreeChangeEvent This is a change event that provides access to changes in subtrees that contain the out-of-sync resources. -
Class Summary Class Description FastSyncInfoFilter A specializedSyncInfoFilter
that does not require a progress monitor.FastSyncInfoFilter.AndSyncInfoFilter SelectsSyncInfo
which match all child filters.FastSyncInfoFilter.AutomergableFilter SelectsSyncInfo
instances that are auto-mergable.FastSyncInfoFilter.CompoundSyncInfoFilter An abstract class which contains a set ofFastSyncInfoFilter
instances.FastSyncInfoFilter.OrSyncInfoFilter SelectsSyncInfo
that match any of the child filters.FastSyncInfoFilter.PseudoConflictFilter SelectsSyncInfo
instances that are pseudo-conflicts.FastSyncInfoFilter.SyncInfoChangeTypeFilter SelectsSyncInfo
whose change type match those of the filter.FastSyncInfoFilter.SyncInfoDirectionFilter SelectsSyncInfo
whose change direction match those of the filter.SyncInfo Describes the synchronization of a local resource relative to a remote resource variant.SyncInfoFilter ASyncInfoFilter
tests aSyncInfo
for inclusion, typically in aSyncInfoSet
.SyncInfoFilter.ContentComparisonSyncInfoFilter SelectsSyncInfo
whose local and remote contents match.SyncInfoSet A dynamic collection ofSyncInfo
objects that provides change notification to registered listeners.SyncInfoSetChangeEvent This event keeps track of the changes in aSyncInfoSet
SyncInfoTree Provides addition API for accessing theSyncInfo
in the set through their resource's hierarchical relationships.