Class Document
- java.lang.Object
-
- org.eclipse.jface.text.AbstractDocument
-
- org.eclipse.jface.text.Document
-
- All Implemented Interfaces:
IDocument,IDocumentExtension,IDocumentExtension2,IDocumentExtension3,IDocumentExtension4,IRepairableDocument,IRepairableDocumentExtension
public class Document extends AbstractDocument
Default document implementation. Uses aGapTextStorewrapped inside aCopyOnWriteTextStoreas text store.The used line tracker considers the following strings as line delimiters: "\n", "\r", "\r\n". In case of a text replacement across line delimiter boundaries and with different line delimiters, the line tracker might have to be repaired. Use
isLineInformationRepairNeeded(int, int, String)before doing the text replace if you have the need to discover such a situation.The document is ready to use. It has a default position category for which a default position updater is installed.
Performance: The implementation should perform reasonably well for typical source code documents. It is not designed for very large documents of a size of several megabytes. Space-saving implementations are initially used for both the text store and the line tracker; the first modification after a
setincurs the cost to transform the document structures to efficiently handle updates.See
GapTextStoreandTreeLineTrackerfor algorithmic behavior of the used document structures.- See Also:
GapTextStore,CopyOnWriteTextStore
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.jface.text.IDocumentExtension
IDocumentExtension.IReplace
-
-
Field Summary
-
Fields inherited from interface org.eclipse.jface.text.IDocument
DEFAULT_CATEGORY, DEFAULT_CONTENT_TYPE
-
Fields inherited from interface org.eclipse.jface.text.IDocumentExtension3
DEFAULT_PARTITIONING
-
Fields inherited from interface org.eclipse.jface.text.IDocumentExtension4
UNKNOWN_MODIFICATION_STAMP
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisLineInformationRepairNeeded(int offset, int length, String text)Tells whether the line information of the document implementing this interface needs to be repaired after replacing the given text.-
Methods inherited from class org.eclipse.jface.text.AbstractDocument
acceptPostNotificationReplaces, addDocumentListener, addDocumentPartitioningListener, addDocumentRewriteSessionListener, addPosition, addPosition, addPositionCategory, addPositionUpdater, addPrenotifiedDocumentListener, checkStateOfPartitioner, completeInitialization, computeIndexInCategory, computeIndexInPositionList, computeIndexInPositionList, computeNumberOfLines, computePartitioning, computePartitioning, containsPosition, containsPositionCategory, doFireDocumentChanged, doFireDocumentChanged, doFireDocumentChanged2, fireDocumentAboutToBeChanged, fireDocumentChanged, fireDocumentPartitioningChanged, fireDocumentPartitioningChanged, fireDocumentPartitioningChanged, fireRewriteSessionChanged, get, get, getActiveRewriteSession, getChar, getContentType, getContentType, getDefaultLineDelimiter, getDocumentListeners, getDocumentManagedPositions, getDocumentPartitioner, getDocumentPartitioner, getDocumentPartitioningListeners, getLegalContentTypes, getLegalContentTypes, getLegalLineDelimiters, getLength, getLineDelimiter, getLineInformation, getLineInformationOfOffset, getLineLength, getLineOffset, getLineOfOffset, getModificationStamp, getNumberOfLines, getNumberOfLines, getPartition, getPartition, getPartitionings, getPositionCategories, getPositions, getPositions, getPositionUpdaters, getStore, getTracker, ignorePostNotificationReplaces, insertPositionUpdater, registerPostNotificationReplace, removeDocumentListener, removeDocumentPartitioningListener, removeDocumentRewriteSessionListener, removePosition, removePosition, removePositionCategory, removePositionUpdater, removePrenotifiedDocumentListener, repairLineInformation, replace, replace, resumeListenerNotification, resumePostNotificationProcessing, search, set, set, setDocumentPartitioner, setDocumentPartitioner, setInitialLineDelimiter, setLineTracker, setTextStore, startRewriteSession, startRewriteSessionOnPartitioners, startSequentialRewrite, stopListenerNotification, stopPostNotificationProcessing, stopRewriteSession, stopRewriteSessionOnPartitioners, stopSequentialRewrite, updateDocumentStructures, updatePositions
-
-
-
-
Constructor Detail
-
Document
public Document()
Creates a new empty document.
-
Document
public Document(String initialContent)
Creates a new document with the given initial content.- Parameters:
initialContent- the document's initial content
-
-
Method Detail
-
isLineInformationRepairNeeded
public boolean isLineInformationRepairNeeded(int offset, int length, String text) throws BadLocationExceptionDescription copied from class:AbstractDocumentTells whether the line information of the document implementing this interface needs to be repaired after replacing the given text.- Specified by:
isLineInformationRepairNeededin interfaceIRepairableDocumentExtension- Overrides:
isLineInformationRepairNeededin classAbstractDocument- Parameters:
offset- the document offsetlength- the length of the specified rangetext- the substitution text to check- Returns:
trueif the line information must be repaired after replacing- Throws:
BadLocationException- if the offset is invalid in this document- See Also:
IRepairableDocument.repairLineInformation()
-
-