| <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> |
| <html> |
| <head> |
| <meta content="text/html; charset=iso-8859-1" |
| http-equiv="Content-Type"> |
| <meta content="IBM" name="Author"> |
| <title>Package-level Javadoc</title> |
| </head> |
| <body> |
| Application programming interfaces for accessing and managing resource variants. |
| <h2>Package Specification</h2> |
| <p>This package specifies the API for accessing and managing variants for local |
| workspace 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: <br> |
| </p> |
| <h3>Access to Resource Variants</h3> |
| <p>The following interfaces define the API required for subscribers to access |
| and manage variants of local resources.</p> |
| <ul> |
| <li>IResourceVariant: provides access to information about a variant resource, |
| such as it's name, its type (file or container) and its contents.</li> |
| <li>IResourceVariantComparator: supports the comparison of a local resource |
| with a variant or the comparison of two variants (if three-way comparison |
| is supported).</li> |
| <li>IResourceVariantTree: provides access to a tree of locally cached resource |
| variants along with API to refresh the cached variants.</li> |
| </ul> |
| <h3>Implementing Resource Variants</h3> |
| <p>Several classes are available that provide partial, extandable implementations |
| of the above mentioned interfaces.</p> |
| <ul> |
| <li>CachedResourceVariant: an IResourceVariant implementation that supports |
| the caching of the contents of the variant. Subclasses must override to provide |
| fecthing of contents.</li> |
| <li>AbstractResourceVariantTree: an IResourceVariantTree that contains logic |
| for performing a refresh of the cached resource variants. The caching mechanism |
| is delegated to subclasses as is the fetching of the resource variants. |
| <ul> |
| <li>ResourceVariantTree: An AbstractResourceVariantTree that uses a ResourceVariantByteStore |
| to cache the resource variants. Subclasses must still provide the fecthing |
| of the remote state.</li> |
| </ul> |
| </li> |
| <li>ResourceVariantByteStore: An abstract class that defines the API required |
| for caching resource variants as byte arrays. |
| <ul> |
| <li>PersistantResourceVariantByteStore: a ResourceVariantByteStore that |
| persists the bytes accross workbench invocations.</li> |
| <li>SessionResourceVariantByteStore: a ResourceVariantByteStore that caches |
| the bytes in a session store and does not persist them.</li> |
| </ul> |
| </li> |
| </ul> |
| <h3>Implementing Subscribers</h3> |
| <p>This package also contains two partial subscriber implementations.</p> |
| <ul> |
| <li>ResourceVariantTreeSubscriber: a subscriber that makes use of IResourceVariantTree |
| objects to provide the traversal and refresh of the base and remote trees.</li> |
| <li>ThreeWaySubscriber: a ResourceVariantTreeSubscriber that is build on top |
| of the following classes. |
| <ul> |
| <li>ThreeWaySynchronizer: a byte store that maintains the complete synchronization |
| state (local, base and remote) required by a subscriber. It provides API |
| to access and set the base and remote bytes corresponding to resource |
| variants as well as change notification to registered ISynchronizerChangeListener |
| instances. </li> |
| <li>ThreeWayRemoteTree: A remote tree that uses the ThreeWaySynchronizer |
| remote slot as its byte store. Subclasses of ResourceVariantTreeSubscriber |
| must also subclass ThreeWayRemoteTree in order to provide the tree refresh |
| behavior.</li> |
| <li>ThreeWayResourceComparator: a IResourceVariantComparator that uses the |
| state from a ThreeWaySynchronizer to compare local resources to their |
| variants.</li> |
| </ul> |
| </li> |
| </ul> |
| <p> </p> |
| </body> |
| </html> |