Eclipse Platform Release 3.7

## org.eclipse.compare
Interface ISharedDocumentAdapter

All Known Implementing Classes:
  SharedDocumentAdapter, SharedDocumentAdapterWrapper

    public interface ISharedDocumentAdapter

An `ISharedDocumentAdapter` is used to map an `ITypedElement` to a shared document for the purposes of editing.

Since:
  3.3
Restriction:
  Clients are not expected to implement this interface but instead should subclass `SharedDocumentAdapter` or `SharedDocumentAdapterWrapper`.

Method Summary
`void` `connect(IDocumentProvider provider, IEditorInput documentKey)` Connect the given element to its document provider.
`void` `disconnect(IDocumentProvider provider, IEditorInput documentKey)` Disconnect the element from the document provider.
`void` `disconnect(Object element)` A helper disconnect method that looks up the appropriate key (using `getDocumentKey(Object)` and the appropriate provider and calls `disconnect(IDocumentProvider, IEditorInput)`.
`void` `flushDocument(IDocumentProvider provider, IEditorInput documentKey, IDocument document, boolean overwrite)` Flush the contents of the given document into the typed element that provided the document.
`IEditorInput` `getDocumentKey(Object element)` Return the object that is to be used as the key for retrieving the appropriate `IDocumentProvider` from the `DocumentProviderRegistry` and for obtaining the shared `IDocument` from the document provider.

Method Detail

### getDocumentKey

    IEditorInput getDocumentKey(Object element)

  Return the object that is to be used as the key for retrieving the appropriate `IDocumentProvider` from the `DocumentProviderRegistry` and for obtaining the shared `IDocument` from the document provider. Returns `null` if the element does not have a shared document.

  Parameters:
    `element` - the element being queried for a shared document
  Returns:
    the object that acts as the key to obtain a document provider and document or `null`

### connect

    void connect(IDocumentProvider provider,
                 IEditorInput documentKey)
                 throws CoreException

  Connect the given element to its document provider. All connections must be performed through this adapter so that the adapter can track whether it is connected or not.

  Parameters:
    `provider` - the document provider
    `documentKey` - the element's key returned from `getDocumentKey(Object)`
  Throws:
    `CoreException` - if connection was not possible
  See Also:
    `IDocumentProvider.connect(Object)`

### disconnect

    void disconnect(IDocumentProvider provider,
                    IEditorInput documentKey)

  Disconnect the element from the document provider. All connects and disconnects must occur through the adapter so that the adapter can track whether it is connected or not.

  Parameters:
    `provider` - the document provider
    `documentKey` - the element's key returned from `getDocumentKey(Object)`
  See Also:
    `IDocumentProvider.disconnect(Object)`

### disconnect

    void disconnect(Object element)

  A helper disconnect method that looks up the appropriate key (using `getDocumentKey(Object)` and the appropriate provider and calls `disconnect(IDocumentProvider, IEditorInput)`.

  Parameters:
    `element` - the element that was used to previously connect to a document
  See Also:
    `IDocumentProvider.disconnect(Object)`

### flushDocument

    void flushDocument(IDocumentProvider provider,
                       IEditorInput documentKey,
                       IDocument document,
                       boolean overwrite)
                       throws CoreException

  Flush the contents of the given document into the typed element that provided the document. This method is invoked by the Compare framework classes when a request to flush the viewers has been made. It is up to the implementor to decide whether the changes in the buffer should be saved to disk at the time of the flush or buffered to be saved at a later time.

  Parameters:
    `provider` - the document provider
    `documentKey` - the element's key returned from `getDocumentKey(Object)`
    `document` - the document
    `overwrite` - indicates whether overwrite should be performed while saving the given element if necessary
  Throws:
    `CoreException` - if document could not be stored to the given element
  See Also:
    `IDocumentProvider.saveDocument(IProgressMonitor, Object, IDocument, boolean)`

Eclipse Platform Release 3.7

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2011. All rights reserved.