Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.ui.editors.text
Class FileDocumentProvider

    java.lang.Object
      org.eclipse.ui.texteditor.AbstractDocumentProvider
          org.eclipse.ui.editors.text.StorageDocumentProvider
              org.eclipse.ui.editors.text.FileDocumentProvider

All Implemented Interfaces:
  IDocumentProvider, IDocumentProviderExtension, IDocumentProviderExtension2, IDocumentProviderExtension3, IStorageDocumentProvider

public class FileDocumentProvider
extends StorageDocumentProvider

Shared document provider specialized for file resources (`IFile`).

This class may be instantiated or be subclassed.

Nested Class Summary
`protected class` | `FileDocumentProvider.FileInfo` Bundle of all required information to allow files as underlying document resources.
`protected class` | `FileDocumentProvider.FileSynchronizer` Synchronizes the document with external resource changes.
`protected class` | `FileDocumentProvider.SafeChange` Runnable encapsulating an element state change.

Nested classes inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
`StorageDocumentProvider.StorageInfo`

Nested classes inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
`AbstractDocumentProvider.DocumentProviderOperation, AbstractDocumentProvider.ElementInfo`

Field Summary

Fields inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
`DEFAULT_FILE_SIZE`

Fields inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
`PR10806_UC5_ENABLED, PR14469_ENABLED, STATUS_ERROR, STATUS_OK`

Constructor Summary
`FileDocumentProvider()` Creates and returns a new document provider.

Method Summary
`protected void` | `checkSynchronizationState(long cachedModificationStamp, IResource resource)` Checks whether the given resource has been changed on the local file system by comparing the actual time stamp with the cached one.
`protected long` | `computeModificationStamp(IResource resource)` Computes the initial modification stamp for the given resource.
`protected IAnnotationModel` | `createAnnotationModel(Object element)` Creates an annotation model for the given element.
`protected AbstractDocumentProvider.ElementInfo` | `createElementInfo(Object element)` Creates a new element info object for the given element.
`protected void` | `disposeElementInfo(Object element, AbstractDocumentProvider.ElementInfo info)` Disposes of the given element info object.
`protected void` | `doResetDocument(Object element, IProgressMonitor monitor)` Executes the actual work of reseting the given elements document.
`protected void` | `doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite)` Performs the actual work of saving the given document provided for the given element.
`protected void` | `doSynchronize(Object element, IProgressMonitor monitor)` Performs the actual work of synchronizing the given element.
`protected void` | `doValidateState(Object element, Object computationContext)` Hook method for validating the state of the given element.
`protected AbstractDocumentProvider.ElementInfo` | `getElementInfo(Object element)` Returns the element info object for the given element.
`long` | `getModificationStamp(Object element)` Returns the modification stamp of the given element.
`protected IRunnableContext` | `getOperationRunner(IProgressMonitor monitor)` Returns the runnable context for this document provider.
`protected String` | `getPersistedEncoding(Object element)` Returns the persisted encoding for the given element.
`protected ISchedulingRule` | `getResetRule(Object element)` Returns the scheduling rule required for executing `reset` on the given element.
`protected ISchedulingRule` | `getSaveRule(Object element)` Returns the scheduling rule required for executing `save` on the given element.
`long` | `getSynchronizationStamp(Object element)` Returns the time stamp of the last synchronization of the given element and it's provided document.
`protected ISchedulingRule` | `getSynchronizeRule(Object element)` Returns the scheduling rule required for executing `synchronize` on the given element.
`protected ISchedulingRule` | `getValidateStateRule(Object element)` Returns the scheduling rule required for executing `validateState` on the given element.
`protected void` | `handleElementContentChanged(IFileEditorInput fileEditorInput)` Updates the element info to a change of the file content and sends out appropriate notifications.
`protected void` | `handleElementDeleted(IFileEditorInput fileEditorInput)` Sends out the notification that the file serving as document input has been deleted.
`protected void` | `handleElementMoved(IFileEditorInput fileEditorInput, IPath path)` Sends out the notification that the file serving as document input has been moved.
`boolean` | `isDeleted(Object element)` Returns whether the given element has been deleted.
`boolean` | `isModifiable(Object element)` Returns whether the document provider thinks that the given element can persistently be modified.
`boolean` | `isSynchronized(Object element)` Returns whether the information provided for the given element is in sync with the element.
`protected void` | `persistEncoding(Object element, String encoding)` Persists the given encoding for the given element.
`protected void` | `readUTF8BOM(IFile file, String encoding, Object element)` Deprecated. as of 3.0 this method is no longer in use and does nothing
`protected void` | `refreshFile(IFile file)` Refreshes the given file resource.
`protected void` | `refreshFile(IFile file, IProgressMonitor monitor)` Refreshes the given file resource.
`protected boolean` | `setDocumentContent(IDocument document, IEditorInput editorInput)` Deprecated. use file encoding based version
`protected boolean` | `setDocumentContent(IDocument document, IEditorInput editorInput, String encoding)` Initializes the given document from the given editor input using the given character encoding.

Methods inherited from class org.eclipse.ui.editors.text.StorageDocumentProvider
`createDocument, createEmptyDocument, doUpdateStateCache, getDefaultEncoding, getEncoding, handleCoreException, isReadOnly, setDocumentContent, setDocumentContent, setEncoding, setupDocument, updateCache`

Methods inherited from class org.eclipse.ui.texteditor.AbstractDocumentProvider
`aboutToChange, addElementStateListener, addUnchangedElementListeners, canSaveDocument, changed, connect, connected, disconnect, disconnected, executeOperation, fireElementContentAboutToBeReplaced, fireElementContentReplaced, fireElementDeleted, fireElementDirtyStateChanged, fireElementMoved, fireElementStateChangeFailed, fireElementStateChanging, fireElementStateValidationChanged, getAnnotationModel, getConnectedElements, getDocument, getProgressMonitor, getStatus, invalidatesState, isStateValidated, mustSaveDocument, removeElementStateListener, removeUnchangedElementListeners, resetDocument, saveDocument, setCanSaveDocument, setProgressMonitor, synchronize, updateStateCache, validateState`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FileDocumentProvider

    public FileDocumentProvider()

  Creates and returns a new document provider.

Method Detail

### setDocumentContent

    protected boolean setDocumentContent(IDocument document,
                                         IEditorInput editorInput)
                                  throws CoreException

  Deprecated. use file encoding based version

  Overrides `StorageDocumentProvider#setDocumentContent(IDocument, IEditorInput)`.

  Overrides:
    `setDocumentContent` in class `StorageDocumentProvider`
  Parameters:
    `document` - the document to be initialized
    `editorInput` - the input from which to derive the content of the document
  Returns:
    `true` if the document content could be set, `false` otherwise
  Throws:
    `CoreException` - if the given editor input cannot be accessed
  Since:
    2.0
  See Also:
    `StorageDocumentProvider.setDocumentContent(IDocument, IEditorInput)`

### setDocumentContent

    protected boolean setDocumentContent(IDocument document,
                                         IEditorInput editorInput,
                                         String encoding)
                                  throws CoreException

  Description copied from class: `StorageDocumentProvider`
  Initializes the given document from the given editor input using the given character encoding.

  Overrides:
    `setDocumentContent` in class `StorageDocumentProvider`
  Parameters:
    `document` - the document to be initialized
    `editorInput` - the input from which to derive the content of the document
    `encoding` - the character encoding used to read the editor input
  Returns:
    `true` if the document content could be set, `false` otherwise
  Throws:
    `CoreException` - if the given editor input cannot be accessed

### createAnnotationModel

    protected IAnnotationModel createAnnotationModel(Object element)
                                              throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Creates an annotation model for the given element.

  Subclasses must implement this method.

  Overrides:
    `createAnnotationModel` in class `StorageDocumentProvider`
  Throws:
    `CoreException`

### checkSynchronizationState

    protected void checkSynchronizationState(long cachedModificationStamp,
                                             IResource resource)
                                      throws CoreException

  Checks whether the given resource has been changed on the local file system by comparing the actual time stamp with the cached one. If the resource has been changed, a `CoreException` is thrown.

  Parameters:
    `cachedModificationStamp` - the cached modification stamp
    `resource` - the resource to check
  Throws:
    `CoreException` - if resource has been changed on the file system

### computeModificationStamp

    protected long computeModificationStamp(IResource resource)

  Computes the initial modification stamp for the given resource.

  Parameters:
    `resource` - the resource
  Returns:
    the modification stamp

### getModificationStamp

    public long getModificationStamp(Object element)

  Description copied from interface: `IDocumentProvider`
  Returns the modification stamp of the given element.

  Specified by:
    `getModificationStamp` in interface `IDocumentProvider`
  Overrides:
    `getModificationStamp` in class `AbstractDocumentProvider`

### getSynchronizationStamp

    public long getSynchronizationStamp(Object element)

  Description copied from interface: `IDocumentProvider`
  Returns the time stamp of the last synchronization of the given element and it's provided document.

  Specified by:
    `getSynchronizationStamp` in interface `IDocumentProvider`
  Overrides:
    `getSynchronizationStamp` in class `AbstractDocumentProvider`

### doSynchronize

    protected void doSynchronize(Object element,
                                 IProgressMonitor monitor)
                          throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Performs the actual work of synchronizing the given element.

  Overrides:
    `doSynchronize` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
    `monitor` - the progress monitor
  Throws:
    `CoreException` - in the case that synchronization fails

### isDeleted

    public boolean isDeleted(Object element)

  Description copied from interface: `IDocumentProvider`
  Returns whether the given element has been deleted.

  Specified by:
    `isDeleted` in interface `IDocumentProvider`
  Overrides:
    `isDeleted` in class `AbstractDocumentProvider`

### doSaveDocument

    protected void doSaveDocument(IProgressMonitor monitor,
                                  Object element,
                                  IDocument document,
                                  boolean overwrite)
                           throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Performs the actual work of saving the given document provided for the given element.

  Subclasses must implement this method.

  Overrides:
    `doSaveDocument` in class `StorageDocumentProvider`
  Throws:
    `CoreException`

### createElementInfo

    protected AbstractDocumentProvider.ElementInfo createElementInfo(Object element)
                                                              throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Creates a new element info object for the given element.

  This method is called from `connect` when an element info needs to be created. The `AbstractDocumentProvider` implementation of this method returns a new element info object whose document and annotation model are the values of `createDocument(element)` and `createAnnotationModel(element)`, respectively. Subclasses may override.

  Overrides:
    `createElementInfo` in class `StorageDocumentProvider`
  Throws:
    `CoreException`

### disposeElementInfo

    protected void disposeElementInfo(Object element,
                                      AbstractDocumentProvider.ElementInfo info)

  Description copied from class: `AbstractDocumentProvider`
  Disposes of the given element info object.

  This method is called when an element info is disposed. The `AbstractDocumentProvider` implementation of this method does nothing. Subclasses may reimplement.

  Overrides:
    `disposeElementInfo` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
    `info` - the element info object

### handleElementContentChanged

    protected void handleElementContentChanged(IFileEditorInput fileEditorInput)

  Updates the element info to a change of the file content and sends out appropriate notifications.

  Parameters:
    `fileEditorInput` - the input of an text editor

### handleElementMoved

    protected void handleElementMoved(IFileEditorInput fileEditorInput,
                                      IPath path)

  Sends out the notification that the file serving as document input has been moved.

  Parameters:
    `fileEditorInput` - the input of an text editor
    `path` - the path of the new location of the file

### handleElementDeleted

    protected void handleElementDeleted(IFileEditorInput fileEditorInput)

  Sends out the notification that the file serving as document input has been deleted.

  Parameters:
    `fileEditorInput` - the input of an text editor

### getElementInfo

    protected AbstractDocumentProvider.ElementInfo getElementInfo(Object element)

  Description copied from class: `AbstractDocumentProvider`
  Returns the element info object for the given element.

  Overrides:
    `getElementInfo` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
  Returns:
    the element info object, or `null` if none

### doValidateState

    protected void doValidateState(Object element,
                                   Object computationContext)
                            throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Hook method for validating the state of the given element. Must not take care of cache updating etc. Default implementation is empty.

  Overrides:
    `doValidateState` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
    `computationContext` - the context in which validation happens
  Throws:
    `CoreException` - in case validation fails

### isModifiable

    public boolean isModifiable(Object element)

  Description copied from interface: `IDocumentProviderExtension`
  Returns whether the document provider thinks that the given element can persistently be modified. This is orthogonal to `isReadOnly` as read-only elements may be modifiable and writable elements may not be modifiable. If the given element is not connected to this document provider, the result is undefined. Document providers are allowed to use a cache to answer this question, i.e. there can be a difference between the "real" state of the element and the return value.

  Specified by:
    `isModifiable` in interface `IDocumentProviderExtension`
  Overrides:
    `isModifiable` in class `StorageDocumentProvider`

### doResetDocument

    protected void doResetDocument(Object element,
                                   IProgressMonitor monitor)
                            throws CoreException

  Description copied from class: `AbstractDocumentProvider`
  Executes the actual work of reseting the given elements document.

  Overrides:
    `doResetDocument` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
    `monitor` - the progress monitor
  Throws:
    `CoreException`

### refreshFile

    protected void refreshFile(IFile file)
                        throws CoreException

  Refreshes the given file resource.

  Parameters:
    `file` -
  Throws:
    `CoreException` - if the refresh fails
  Since:
    2.1

### refreshFile

    protected void refreshFile(IFile file,
                               IProgressMonitor monitor)
                        throws CoreException

  Refreshes the given file resource.

  Parameters:
    `file` - the file to be refreshed
    `monitor` - the progress monitor
  Throws:
    `CoreException` - if the refresh fails
  Since:
    3.0

### isSynchronized

    public boolean isSynchronized(Object element)

  Description copied from interface: `IDocumentProviderExtension3`
  Returns whether the information provided for the given element is in sync with the element.

  Specified by:
    `isSynchronized` in interface `IDocumentProviderExtension3`
  Overrides:
    `isSynchronized` in class `AbstractDocumentProvider`

### getPersistedEncoding

    protected String getPersistedEncoding(Object element)

  Returns the persisted encoding for the given element.

  Overrides:
    `getPersistedEncoding` in class `StorageDocumentProvider`
  Parameters:
    `element` - the element for which to get the persisted encoding
  Returns:
    the persisted encoding
  Since:
    2.1

### persistEncoding

    protected void persistEncoding(Object element,
                                   String encoding)
                            throws CoreException

  Persists the given encoding for the given element.

  Overrides:
    `persistEncoding` in class `StorageDocumentProvider`
  Parameters:
    `element` - the element for which to store the persisted encoding
    `encoding` - the encoding
  Throws:
    `CoreException` - if persisting the encoding fails
  Since:
    2.1

### getOperationRunner

    protected IRunnableContext getOperationRunner(IProgressMonitor monitor)

  Description copied from class: `AbstractDocumentProvider`
  Returns the runnable context for this document provider.

  Overrides:
    `getOperationRunner` in class `StorageDocumentProvider`

### getResetRule

    protected ISchedulingRule getResetRule(Object element)

  Description copied from class: `AbstractDocumentProvider`
  Returns the scheduling rule required for executing `reset` on the given element. This default implementation returns `null`.

  Overrides:
    `getResetRule` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
  Returns:
    the scheduling rule for `reset`

### getSaveRule

    protected ISchedulingRule getSaveRule(Object element)

  Description copied from class: `AbstractDocumentProvider`
  Returns the scheduling rule required for executing `save` on the given element. This default implementation returns `null`.

  Overrides:
    `getSaveRule` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
  Returns:
    the scheduling rule for `save`

### getSynchronizeRule

    protected ISchedulingRule getSynchronizeRule(Object element)

  Description copied from class: `AbstractDocumentProvider`
  Returns the scheduling rule required for executing `synchronize` on the given element. This default implementation returns `null`.

  Overrides:
    `getSynchronizeRule` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
  Returns:
    the scheduling rule for `synchronize`

### getValidateStateRule

    protected ISchedulingRule getValidateStateRule(Object element)

  Description copied from class: `AbstractDocumentProvider`
  Returns the scheduling rule required for executing `validateState` on the given element. This default implementation returns `null`.

  Overrides:
    `getValidateStateRule` in class `AbstractDocumentProvider`
  Parameters:
    `element` - the element
  Returns:
    the scheduling rule for `validateState`

### readUTF8BOM

    protected void readUTF8BOM(IFile file,
                               String encoding,
                               Object element)
                        throws CoreException

  Deprecated. as of 3.0 this method is no longer in use and does nothing

  Reads the file's UTF-8 BOM if any and stores it.

  XXX: This is a workaround for a corresponding bug in Java readers and writer, see: http://developer.java.sun.com/developer/bugParade/bugs/4508058.html

  Parameters:
    `file` - the file
    `encoding` - the encoding
    `element` - the element, or `null`
  Throws:
    `CoreException` - if reading the BOM fails
  Since:
    3.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.