|
Eclipse Platform Release 3.3 |
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||
java.lang.Objectorg.eclipse.jface.text.AbstractDocument
Abstract default implementation of IDocument and its extension
interfaces IDocumentExtension,
IDocumentExtension2,
IDocumentExtension3,
IDocumentExtension4, as well as
IRepairableDocument.
An AbstractDocument supports the following implementation
plug-ins:
ITextStore for
storing and managing the document's content,ILineTracker
to map character positions to line numbers and vice versaThis class must be subclassed. Subclasses must configure which implementation plug-ins the document instance should use. Subclasses are not intended to overwrite existing methods.
ITextStore,
ILineTracker| Nested Class Summary |
|---|
| Nested classes inherited from class 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 |
| Constructor Summary | |
|---|---|
protected |
AbstractDocument()
The default constructor does not perform any configuration but leaves it to the clients who must first initialize the implementation plug-ins and then call completeInitialization.
|
| Method Summary | |
|---|---|
void |
acceptPostNotificationReplaces()
Tells the receiver to accept calls to registerPostNotificationReplace until
ignorePostNotificationReplaces is called. |
void |
addDocumentListener(IDocumentListener listener)
Registers the document listener with the document. |
void |
addDocumentPartitioningListener(IDocumentPartitioningListener listener)
Registers the document partitioning listener with the document. |
void |
addDocumentRewriteSessionListener(IDocumentRewriteSessionListener listener)
Registers the document rewrite session listener with the document. |
void |
addPosition(Position position)
Adds the position to the document's default position category. |
void |
addPosition(String category,
Position position)
Adds the position to the specified position category of the document. |
void |
addPositionCategory(String category)
Adds a new position category to the document. |
void |
addPositionUpdater(IPositionUpdater updater)
Appends a new position updater to the document's list of position updaters. |
void |
addPrenotifiedDocumentListener(IDocumentListener listener)
Adds the given document listener as one which is notified before those document listeners added with addDocumentListener
are notified. |
protected void |
checkStateOfPartitioner(IDocumentPartitioner partitioner,
String partitioning)
Checks the state for the given partitioner and stops the active rewrite session. |
protected void |
completeInitialization()
Initializes document listeners, positions, and position updaters. |
int |
computeIndexInCategory(String category,
int offset)
Computes the index at which a Position with the
specified offset would be inserted into the given category. |
protected int |
computeIndexInPositionList(List positions,
int offset)
Computes the index in the list of positions at which a position with the given offset would be inserted. |
int |
computeNumberOfLines(String text)
Computes the number of lines in the given text. |
ITypedRegion[] |
computePartitioning(int offset,
int length)
Computes the partitioning of the given document range using the document's partitioner. |
ITypedRegion[] |
computePartitioning(String partitioning,
int offset,
int length,
boolean includeZeroLengthPartitions)
Computes the partitioning of the given document range based on the given partitioning type. |
boolean |
containsPosition(String category,
int offset,
int length)
Determines whether a position described by the parameters is managed by this document. |
boolean |
containsPositionCategory(String category)
Checks the presence of the specified position category. |
protected void |
doFireDocumentChanged(DocumentEvent event)
Notifies all listeners about the given document change. |
protected void |
doFireDocumentChanged(DocumentEvent event,
boolean firePartitionChange,
IRegion partitionChange)
Deprecated. as of 3.0. Use doFireDocumentChanged2(DocumentEvent) instead; this method will be removed. |
protected void |
doFireDocumentChanged2(DocumentEvent event)
Notifies all listeners about the given document change. |
protected void |
fireDocumentAboutToBeChanged(DocumentEvent event)
Fires the given document event to all registers document listeners informing them about the forthcoming document manipulation. |
protected void |
fireDocumentChanged(DocumentEvent event)
Updates the internal document structures and informs all document listeners if listener notification has been enabled. |
protected void |
fireDocumentPartitioningChanged()
Deprecated. as of 2.0. Use fireDocumentPartitioningChanged(IRegion) instead. |
protected void |
fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent event)
Fires the document partitioning changed notification to all registered document partitioning listeners. |
protected void |
fireDocumentPartitioningChanged(IRegion region)
Deprecated. as of 3.0. Use fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent)
instead. |
protected void |
fireRewriteSessionChanged(DocumentRewriteSessionEvent event)
Fires the given event to all registered rewrite session listeners. |
String |
get()
Returns this document's complete text. |
String |
get(int pos,
int length)
Returns this document's text for the specified range. |
DocumentRewriteSession |
getActiveRewriteSession()
Returns the active rewrite session of this document or null. |
char |
getChar(int pos)
Returns the character at the given document offset in this document. |
String |
getContentType(int offset)
Returns the type of the document partition containing the given offset. |
String |
getContentType(String partitioning,
int offset,
boolean preferOpenPartitions)
Returns the type of the document partition containing the given offset for the given partitioning. |
String |
getDefaultLineDelimiter()
Returns this document's default line delimiter. |
protected List |
getDocumentListeners()
Returns the document's document listeners. |
protected Map |
getDocumentManagedPositions()
Returns all positions managed by the document grouped by category. |
IDocumentPartitioner |
getDocumentPartitioner()
Returns this document's partitioner. |
IDocumentPartitioner |
getDocumentPartitioner(String partitioning)
Returns the partitioner for the given partitioning or null if
no partitioner is registered. |
protected List |
getDocumentPartitioningListeners()
Returns the document's partitioning listeners. |
String[] |
getLegalContentTypes()
Returns the set of legal content types of document partitions. |
String[] |
getLegalContentTypes(String partitioning)
Returns the set of legal content types of document partitions for the given partitioning This set can be empty. |
String[] |
getLegalLineDelimiters()
Returns the document's legal line delimiters. |
int |
getLength()
Returns the number of characters in this document. |
String |
getLineDelimiter(int line)
Returns the line delimiter of that line or null if the
line is not closed with a line delimiter. |
IRegion |
getLineInformation(int line)
Returns a description of the specified line. |
IRegion |
getLineInformationOfOffset(int offset)
Returns a description of the line at the given offset. |
int |
getLineLength(int line)
Returns the length of the given line including the line's delimiter. |
int |
getLineOffset(int line)
Determines the offset of the first character of the given line. |
int |
getLineOfOffset(int pos)
Returns the number of the line at which the character of the specified position is located. |
long |
getModificationStamp()
Returns the modification stamp of this document. |
int |
getNumberOfLines()
Returns the number of lines in this document |
int |
getNumberOfLines(int offset,
int length)
Returns the number of lines which are occupied by a given text range. |
ITypedRegion |
getPartition(int offset)
Returns the document partition in which the position is located. |
ITypedRegion |
getPartition(String partitioning,
int offset,
boolean preferOpenPartitions)
Returns the document partition of the given partitioning in which the given offset is located. |
String[] |
getPartitionings()
Returns the existing partitionings for this document. |
String[] |
getPositionCategories()
Returns all position categories of this document. |
Position[] |
getPositions(String category)
Returns all positions of the given position category. |
IPositionUpdater[] |
getPositionUpdaters()
Returns the list of position updaters attached to the document. |
protected ITextStore |
getStore()
Returns the document's text store. |
protected ILineTracker |
getTracker()
Returns the document's line tracker. |
void |
ignorePostNotificationReplaces()
Tells the receiver to ignore calls to registerPostNotificationReplace until
acceptPostNotificationReplaces is called. |
void |
insertPositionUpdater(IPositionUpdater updater,
int index)
Inserts the position updater at the specified index in the document's list of position updaters. |
void |
registerPostNotificationReplace(IDocumentListener owner,
IDocumentExtension.IReplace replace)
Callback for document listeners to be used inside documentChanged
to register a post notification replace operation on the document notifying them. |
void |
removeDocumentListener(IDocumentListener listener)
Removes the listener from the document's list of document listeners. |
void |
removeDocumentPartitioningListener(IDocumentPartitioningListener listener)
Removes the listener from this document's list of document partitioning listeners. |
void |
removeDocumentRewriteSessionListener(IDocumentRewriteSessionListener listener)
Removes the listener from the document's list of document rewrite session listeners. |
void |
removePosition(Position position)
Removes the given position from the document's default position category. |
void |
removePosition(String category,
Position position)
Removes the given position from the specified position category. |
void |
removePositionCategory(String category)
Deletes the position category from the document. |
void |
removePositionUpdater(IPositionUpdater updater)
Removes the position updater from the document's list of position updaters. |
void |
removePrenotifiedDocumentListener(IDocumentListener listener)
Removes the given document listener from the document's list of pre-notified document listeners. |
void |
repairLineInformation()
Repairs the line information of the document implementing this interface. |
void |
replace(int pos,
int length,
String text)
Substitutes the given text for the specified document range. |
void |
replace(int pos,
int length,
String text,
long modificationStamp)
Substitutes the given text for the specified document range. |
void |
resumeListenerNotification()
Resumes the notification of document listeners which must previously have been stopped by a call to stopListenerNotification. |
void |
resumePostNotificationProcessing()
Resumes the processing of post notification replace operations. |
int |
search(int startPosition,
String findString,
boolean forwardSearch,
boolean caseSensitive,
boolean wholeWord)
Returns the offset of a given search string in the document based on a set of search criteria. |
void |
set(String text)
Replaces the content of the document with the given text. |
void |
set(String text,
long modificationStamp)
Replaces the content of the document with the given text. |
void |
setDocumentPartitioner(IDocumentPartitioner partitioner)
Sets this document's partitioner. |
void |
setDocumentPartitioner(String partitioning,
IDocumentPartitioner partitioner)
Sets this document's partitioner. |
void |
setInitialLineDelimiter(String lineDelimiter)
Sets this document's initial line delimiter i.e. the one which is returned by getDefaultLineDelimiter
if the document does not yet contain any line delimiter. |
protected void |
setLineTracker(ILineTracker tracker)
Sets the document's line tracker. |
protected void |
setTextStore(ITextStore store)
Sets the document's text store. |
DocumentRewriteSession |
startRewriteSession(DocumentRewriteSessionType sessionType)
Tells the document that it is about to be rewritten. |
protected void |
startRewriteSessionOnPartitioners(DocumentRewriteSession session)
Starts the given rewrite session. |
void |
startSequentialRewrite(boolean normalized)
Tells the document that it is about to be sequentially rewritten. |
void |
stopListenerNotification()
Can be called prior to a replace operation. |
void |
stopPostNotificationProcessing()
Stops the processing of registered post notification replace operations until resumePostNotificationProcessing is called. |
void |
stopRewriteSession(DocumentRewriteSession session)
Tells the document to stop the rewrite session. |
protected void |
stopRewriteSessionOnPartitioners(DocumentRewriteSession session)
Stops the given rewrite session. |
void |
stopSequentialRewrite()
Tells the document that the sequential rewrite has been finished. |
protected void |
updateDocumentStructures(DocumentEvent event)
Updates document partitioning and document positions according to the specification given by the document event. |
protected void |
updatePositions(DocumentEvent event)
Updates all positions of all categories to the change described by the document event. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
protected AbstractDocument()
completeInitialization.
Results in the construction of an empty document.
| Method Detail |
protected ITextStore getStore()
protected ILineTracker getTracker()
protected List getDocumentListeners()
protected List getDocumentPartitioningListeners()
protected Map getDocumentManagedPositions()
public IDocumentPartitioner getDocumentPartitioner()
IDocument
Use IDocumentExtension3.getDocumentPartitioner(String) when
the document supports multiple partitionings. In that case this method is
equivalent to:
IDocumentExtension3 extension= (IDocumentExtension3) document;
return extension.getDocumentPartitioner(IDocumentExtension3.DEFAULT_PARTITIONING);
getDocumentPartitioner in interface IDocumentprotected void setTextStore(ITextStore store)
store - the document's text storeprotected void setLineTracker(ILineTracker tracker)
tracker - the document's line trackerpublic void setDocumentPartitioner(IDocumentPartitioner partitioner)
IDocument
Use IDocumentExtension3.setDocumentPartitioner(String, IDocumentPartitioner) when
the document supports multiple partitionings. In that case this method is equivalent to:
IDocumentExtension3 extension= (IDocumentExtension3) document;
extension.setDocumentPartitioner(IDocumentExtension3.DEFAULT_PARTITIONING, partitioner);
setDocumentPartitioner in interface IDocumentpartitioner - the document's new partitionerIDocumentPartitioningListenerprotected void completeInitialization()
public void addDocumentListener(IDocumentListener listener)
IDocument
An IDocumentListener may call back to this method
when being inside a document notification.
addDocumentListener in interface IDocumentlistener - the listener to be registeredpublic void removeDocumentListener(IDocumentListener listener)
IDocument
An IDocumentListener may call back to this method
when being inside a document notification.
removeDocumentListener in interface IDocumentlistener - the listener to be removedpublic void addPrenotifiedDocumentListener(IDocumentListener listener)
IDocumentaddDocumentListener
are notified. If the given listener is also registered using
addDocumentListener it will be notified twice.
If the listener is already registered nothing happens.This method is not for public use.
addPrenotifiedDocumentListener in interface IDocumentlistener - the listener to be added as pre-notified document listenerIDocument.removePrenotifiedDocumentListener(IDocumentListener)public void removePrenotifiedDocumentListener(IDocumentListener listener)
IDocumentThis method is not for public use.
removePrenotifiedDocumentListener in interface IDocumentlistener - the listener to be removedIDocument.addPrenotifiedDocumentListener(IDocumentListener)public void addDocumentPartitioningListener(IDocumentPartitioningListener listener)
IDocument
An IDocumentPartitioningListener may call back to this method
when being inside a document notification.
addDocumentPartitioningListener in interface IDocumentlistener - the listener to be addedpublic void removeDocumentPartitioningListener(IDocumentPartitioningListener listener)
IDocument
An IDocumentPartitioningListener may call back to this method
when being inside a document notification.
removeDocumentPartitioningListener in interface IDocumentlistener - the listener to be removed
public void addPosition(String category,
Position position)
throws BadLocationException,
BadPositionCategoryException
IDocument
addPosition in interface IDocumentcategory - the category to which to addposition - the position to be added
BadPositionCategoryException - if the category is undefined in this document
BadLocationException - if position describes an invalid range in this document
public void addPosition(Position position)
throws BadLocationException
IDocumentaddPosition(DEFAULT_CATEGORY, position).
addPosition in interface IDocumentposition - the position to be added
BadLocationException - if position describes an invalid range in this documentpublic void addPositionCategory(String category)
IDocument
addPositionCategory in interface IDocumentcategory - the category to be addedpublic void addPositionUpdater(IPositionUpdater updater)
IDocument
An IPositionUpdater may call back to this method
when being inside a document notification.
addPositionUpdater in interface IDocumentupdater - the updater to be added
public boolean containsPosition(String category,
int offset,
int length)
IDocument
containsPosition in interface IDocumentcategory - the category to checkoffset - the offset of the position to findlength - the length of the position to find
true if position is foundpublic boolean containsPositionCategory(String category)
IDocument
containsPositionCategory in interface IDocumentcategory - the category to check
true if category is defined
protected int computeIndexInPositionList(List positions,
int offset)
positions - the list in which the index is computedoffset - the offset for which the index is computed
IDocument.computeIndexInCategory(String, int)
public int computeIndexInCategory(String category,
int offset)
throws BadLocationException,
BadPositionCategoryException
IDocumentPosition with the
specified offset would be inserted into the given category. As the
ordering inside a category only depends on the offset, the index must be
chosen to be the first of all positions with the same offset.
computeIndexInCategory in interface IDocumentcategory - the category in which would be addedoffset - the position offset to be considered
BadPositionCategoryException - if category is undefined in this document
BadLocationException - if offset is invalid in this documentprotected void fireDocumentPartitioningChanged()
fireDocumentPartitioningChanged(IRegion) instead.
protected void fireDocumentPartitioningChanged(IRegion region)
fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent)
instead.
region - the region in which partitioning has changedIDocumentPartitioningListenerExtensionprotected void fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent event)
event - the document partitioning changed eventIDocumentPartitioningListenerExtension2protected void fireDocumentAboutToBeChanged(DocumentEvent event)
event - the event to be sent outprotected void updateDocumentStructures(DocumentEvent event)
event - the document event describing the change to which structures must be adaptedprotected void doFireDocumentChanged(DocumentEvent event)
Executes all registered post notification replace operation.
event - the event to be sent out.
protected void doFireDocumentChanged(DocumentEvent event,
boolean firePartitionChange,
IRegion partitionChange)
doFireDocumentChanged2(DocumentEvent) instead; this method will be removed.
Executes all registered post notification replace operation.
event - the event to be sent outfirePartitionChange - true if a partition change notification should be sentpartitionChange - the region whose partitioning changedprotected void doFireDocumentChanged2(DocumentEvent event)
Executes all registered post notification replace operation.
This method will be renamed to doFireDocumentChanged.
event - the event to be sent outprotected void fireDocumentChanged(DocumentEvent event)
event - the document event to be sent out
public char getChar(int pos)
throws BadLocationException
IDocument
getChar in interface IDocumentpos - a document offset
BadLocationException - if the offset is invalid in this document
public String getContentType(int offset)
throws BadLocationException
IDocumentgetPartition(offset).getType().
Use IDocumentExtension3.getContentType(String, int, boolean) when
the document supports multiple partitionings. In that case this method is
equivalent to:
IDocumentExtension3 extension= (IDocumentExtension3) document;
return extension.getContentType(IDocumentExtension3.DEFAULT_PARTITIONING, offset, false);
getContentType in interface IDocumentoffset - the document offset
BadLocationException - if offset is invalid in this documentpublic String[] getLegalContentTypes()
IDocumentgetPartitioning(0, getLength()).
Use IDocumentExtension3.getLegalContentTypes(String) when the document
supports multiple partitionings. In that case this method is equivalent to:
IDocumentExtension3 extension= (IDocumentExtension3) document;
return extension.getLegalContentTypes(IDocumentExtension3.DEFAULT_PARTITIONING);
getLegalContentTypes in interface IDocumentpublic int getLength()
IDocument
getLength in interface IDocument
public String getLineDelimiter(int line)
throws BadLocationException
IDocumentnull if the
line is not closed with a line delimiter.
getLineDelimiter in interface IDocumentline - the line of interest
null if line does not have a delimiter
BadLocationException - if the line number is invalid in this documentpublic String[] getLegalLineDelimiters()
IDocument
getLegalLineDelimiters in interface IDocumentpublic String getDefaultLineDelimiter()
IDocumentExtension4This default line delimiter should be used by clients who want unique delimiters (e.g. 'CR's) in the document.
getDefaultLineDelimiter in interface IDocumentExtension4null if nonepublic void setInitialLineDelimiter(String lineDelimiter)
IDocumentExtension4getDefaultLineDelimiter
if the document does not yet contain any line delimiter.
setInitialLineDelimiter in interface IDocumentExtension4lineDelimiter - the default line delimiter
public int getLineLength(int line)
throws BadLocationException
IDocument
getLineLength in interface IDocumentline - the line of interest
BadLocationException - if the line number is invalid in this document
public int getLineOfOffset(int pos)
throws BadLocationException
IDocument(offset == document length) is a valid argument although there is no
corresponding character.
getLineOfOffset in interface IDocumentpos - the document offset
BadLocationException - if the offset is invalid in this document
public int getLineOffset(int line)
throws BadLocationException
IDocument
getLineOffset in interface IDocumentline - the line of interest
BadLocationException - if the line number is invalid in this document
public IRegion getLineInformation(int line)
throws BadLocationException
IDocument
getLineInformation in interface IDocumentline - the line of interest
BadLocationException - if the line number is invalid in this document
public IRegion getLineInformationOfOffset(int offset)
throws BadLocationException
IDocument
getLineInformationOfOffset in interface IDocumentoffset - the offset whose line should be described
BadLocationException - if offset is invalid in this documentpublic int getNumberOfLines()
IDocument
getNumberOfLines in interface IDocument
public int getNumberOfLines(int offset,
int length)
throws BadLocationException
IDocument
getNumberOfLines in interface IDocumentoffset - the offset of the specified text rangelength - the length of the specified text range
BadLocationException - if specified range is invalid in this trackerpublic int computeNumberOfLines(String text)
IDocumentset(text); getNumberOfLines().
computeNumberOfLines in interface IDocumenttext - the text whose number of lines should be computed
public ITypedRegion getPartition(int offset)
throws BadLocationException
IDocument
Use IDocumentExtension3.getPartition(String, int, boolean) when
the document supports multiple partitionings. In that case this method is
equivalent:
IDocumentExtension3 extension= (IDocumentExtension3) document;
return extension.getPartition(IDocumentExtension3.DEFAULT_PARTITIONING, offset, false);
getPartition in interface IDocumentoffset - the document offset
BadLocationException - if offset is invalid in this document
public ITypedRegion[] computePartitioning(int offset,
int length)
throws BadLocationException
IDocument
Use IDocumentExtension3.computePartitioning(String, int, int, boolean) when
the document supports multiple partitionings. In that case this method is
equivalent:
IDocumentExtension3 extension= (IDocumentExtension3) document;
return extension.computePartitioning(IDocumentExtension3.DEFAULT_PARTITIONING, offset, length, false);
computePartitioning in interface IDocumentoffset - the document offset at which the range startslength - the length of the document range
BadLocationException - if the range is invalid in this document
public Position[] getPositions(String category)
throws BadPositionCategoryException
IDocument