Package org.eclipse.team.core.subscribers

Package Specification

This package specifies the API for Team subscribers. A Subscriber
provides access to the synchronization state between the local
workspace resources and a set of variants of those resources, whether
it be a code repository or some other type of server (e.g. FTP). A
subscriber is typically associated with only a subset of the resources
in the local workspace, referred to as the set of resources the
subscriber supervises. The supervised local resources have a
corresponding variant state which describes the state of the remote
resources that correspond to the local resources.

A Subscriber provides:

a set of root resources that define the subset of resources in
the workspace that the subscriber supervises (some children of the
roots may not be supervised, as indicated by the isSupervised method).

access to the synchronization state (using SyncInfo) between the
resources it supervises and their corresponding variant resources.

the ability to refresh the the remote state

change notification to registered listeners (of type
ISubscriberChangeListener) when the variant state changes or when roots
are added or removed.

Implementing a Subscriber

An implementation of a subscriber must provide:

a subclass of Subcriber which maintains the synchronization state
between its local resources and their corresponding variants.

an implemenation of org.eclipse.team.core.variants.IResourceVariant which provides access to the
contents and other state of a variant resource that corresponds to a
local resource

an implementation of org.eclipse.team.core.variants.IResourceVariantComparator which is used by
org.eclipse.team.core.synchronize.SyncInfo to determine the synchronization state of a resource.

Optionally, a subscriber may provide a subclass of org.eclipse.team.core.synchronize.SyncInfo in order to
customize the algorithm used to
determine the synchronization state of a resource.