Interface ISlaveDocumentManager

All Known Implementing Classes:
ChildDocumentManager, ProjectionDocumentManager

public interface ISlaveDocumentManager
Slave documents are documents whose contents is defined in terms of a master document. Thus, slave documents usually reflect a projection of the master document. Slave documents are causally connected to the master document. This means, changes of the master document have immediate effect on the slave document and vice versa.

A slave document manager creates slave documents for given master documents, manages the life cycle of the slave documents, and keeps track of the information flow between master and slave documents. The slave document manager defines the construction rules of the slave documents in terms of the master document.

In order to provided backward compatibility for clients of ISlaveDocumentManager, extension interfaces are used to provide a means of evolution. The following extension interfaces exist:

Since:
2.1
See Also:
  • Method Details

    • createSlaveDocument

      IDocument createSlaveDocument(IDocument master)
      Creates a new slave document for the given master document. The slave document is causally connected to its master document until freeSlaveDocument is called. The connection between the newly created slave document and the master document is managed by this slave document manager.
      Parameters:
      master - the master document
      Returns:
      the newly created slave document
      See Also:
    • freeSlaveDocument

      void freeSlaveDocument(IDocument slave)
      Frees the given slave document. If the given document is not a slave document known to this slave document manager, this call does not have any effect. A slave document is known to this slave document manager if it has been created by this manager using createSlaveDocument.
      Parameters:
      slave - the slave document to be freed
      See Also:
    • createMasterSlaveMapping

      IDocumentInformationMapping createMasterSlaveMapping(IDocument slave)
      Creates a new document information mapping between the given slave document and its master document. Returns null if the given document is unknown to this slave document manager.
      Parameters:
      slave - the slave document
      Returns:
      a document information mapping between the slave document and its master document or null
    • getMasterDocument

      IDocument getMasterDocument(IDocument slave)
      Returns the master document of the given slave document or null if the given document is unknown to this slave document manager.
      Parameters:
      slave - the slave document
      Returns:
      the master document of the given slave document or null
    • isSlaveDocument

      boolean isSlaveDocument(IDocument document)
      Returns whether the given document is a slave document known to this slave document manager. A slave document is known to this slave document manager, if the document has been created by this manager.
      Parameters:
      document - the document to be checked whether it is a slave document known to this manager
      Returns:
      true if the document is a slave document, false otherwise
    • setAutoExpandMode

      void setAutoExpandMode(IDocument slave, boolean autoExpand)
      Sets the given slave document's auto expand mode. In auto expand mode, a slave document is automatically adapted to reflect all changes applied to its master document. Assume a master document contains 30 lines and the slave is defined to contain the lines 11-20. In auto expand mode, when the master document is changed at line 8, the slave document is expanded to contain the lines 8-20.

      This call is without effect if the given document is unknown to this slave document manager.

      Parameters:
      slave - the slave whose auto expand mode should be set
      autoExpand - true for auto expand, false otherwise