Interface IDocumentProviderExtension

All Known Implementing Classes:
AbstractDocumentProvider, FileDocumentProvider, ForwardingDocumentProvider, StorageDocumentProvider, 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

    Modifier and Type
    Method
    Description
    getStatus(Object element)
    Returns the status of the given element.
    boolean
    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
    Returns whether the state of the given element has been validated.
    void
    Marks the document managed for the given element as savable.
    void
    Synchronizes the document provided for the given element with the given element.
    void
    Updates the state cache for the given element.
    void
    validateState(Object element, Object computationContext)
    Validates the state of the given element.
  • Method Details

    • isReadOnly

      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

      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

      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

      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

      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

      void setCanSaveDocument(Object element)
      Marks the document managed for the given element as savable. I.e. canBeSaved(element) will return true afterwards.
      Parameters:
      element - the element
    • getStatus

      IStatus getStatus(Object element)
      Returns the status of the given element.
      Parameters:
      element - the element
      Returns:
      the status of the given element
    • synchronize

      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