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.texteditor
Interface IDocumentProviderExtension

All Known Implementing Classes:
  AbstractDocumentProvider, ForwardingDocumentProvider, TextFileDocumentProvider, TextFileDocumentProvider.NullProvider

public interface IDocumentProviderExtension

Extension interface for `IDocumentProvider`. It adds the following functions:

- dealing with immutable domain elements
- state validation
- persistent status of domain element operations
- extended synchronization support

Since:
  2.0

Method Summary
`IStatus` | `getStatus(Object element)` Returns the status of the given element.
`boolean` | `isModifiable(Object element)` Returns whether the document provider thinks that the given element can persistently be modified.
`boolean` | `isReadOnly(Object element)` Returns whether the document provider thinks that the given element is read-only.
`boolean` | `isStateValidated(Object element)` Returns whether the state of the given element has been validated.
`void` | `setCanSaveDocument(Object element)` Marks the document managed for the given element as saveable.
`void` | `synchronize(Object element)` Synchronizes the document provided for the given element with the given element.
`void` | `updateStateCache(Object element)` Updates the state cache for the given element.
`void` | `validateState(Object element, Object computationContext)` Validates the state of the given element.

Method Detail

### isReadOnly

    public boolean isReadOnly(Object element)

  Returns whether the document provider thinks that the given element is read-only. If this method returns `true`, `saveDocument` could fail. This method does not say anything about the document constructed from the given element. If the given element is not connected to this document provider, the return value 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.

  Parameters:
    `element` - the element
  Returns:
    `true` if the given element is read-only, `false` otherwise

### isModifiable

    public boolean isModifiable(Object element)

  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.

  Parameters:
    `element` - the element
  Returns:
    `true` if the given element is modifiable, `false` otherwise

### validateState

    public void validateState(Object element,
                              Object computationContext)
                       throws CoreException

  Validates the state of the given element. This method may change the "real" state of the element. If using, it also updates the internal caches, so that this method may also change the results returned by `isReadOnly` and `isModifiable`. If the given element is not connected to this document provider, the effect is undefined.

  Parameters:
    `element` - the element
    `computationContext` - the context in which the computation is performed, e.g., a SWT shell
  Throws:
    `CoreException` - if validating fails

### isStateValidated

    public boolean isStateValidated(Object element)

  Returns whether the state of the given element has been validated.

  Parameters:
    `element` - the element
  Returns:
    `true` if the state has been validated

### updateStateCache

    public void updateStateCache(Object element)
                          throws CoreException

  Updates the state cache for the given element. This method may change the result returned by `isReadOnly` and `isModifiable`. If the given element is not connected to this document provider, the effect is undefined.

  Parameters:
    `element` - the element
  Throws:
    `CoreException` - if validating fails

### setCanSaveDocument

    public void setCanSaveDocument(Object element)

  Marks the document managed for the given element as saveable. I.e. `canBeSaved(element)` will return `true` afterwards.

  Parameters:
    `element` - the element

### getStatus

    public IStatus getStatus(Object element)

  Returns the status of the given element.

  Parameters:
    `element` - the element
  Returns:
    the status of the given element

### synchronize

    public void synchronize(Object element)
                     throws CoreException

  Synchronizes the document provided for the given element with the given element. After that call `getSynchronizationTimeStamp` and `getModificationTimeStamp` return the same value.

  Parameters:
    `element` - the element
  Throws:
    `CoreException` - if the synchronization could not be performed

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.