org.eclipse.xtext.ui.editor.model
Class XtextDocument

java.lang.Object
  extended by org.eclipse.jface.text.AbstractDocument
      extended by org.eclipse.jface.text.Document
          extended by org.eclipse.xtext.ui.editor.model.XtextDocument
All Implemented Interfaces:
org.eclipse.jface.text.IDocument, org.eclipse.jface.text.IDocumentExtension, org.eclipse.jface.text.IDocumentExtension2, org.eclipse.jface.text.IDocumentExtension3, org.eclipse.jface.text.IDocumentExtension4, org.eclipse.jface.text.IRepairableDocument, org.eclipse.jface.text.IRepairableDocumentExtension, IXtextDocument, IReadAccess<XtextResource>, IWriteAccess<XtextResource>

public class XtextDocument
extends org.eclipse.jface.text.Document
implements IXtextDocument

Author:
Sven Efftinge - Initial contribution and API, Michael Clay, Jan Koehnlein

Nested Class Summary
protected  class XtextDocument.XtextDocumentLocker
           
 
Nested classes/interfaces inherited from interface org.eclipse.jface.text.IDocumentExtension
org.eclipse.jface.text.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
XtextDocument(DocumentTokenSource tokenSource, ITextEditComposer composer)
           
 
Method Summary
 void addModelListener(IXtextModelListener listener)
           
 void addPosition(org.eclipse.jface.text.Position position)
           
 void addPosition(java.lang.String category, org.eclipse.jface.text.Position position)
           
 void addXtextDocumentContentObserver(IXtextDocumentContentObserver observer)
           
 void checkAndUpdateAnnotations()
           
protected  XtextDocument.XtextDocumentLocker createDocumentLocker()
           
 void disposeInput()
           
protected  void ensureThatStateIsNotReturned(java.lang.Object exec, IUnitOfWork<?,XtextResource> uow)
           
protected  void fireDocumentChanged(org.eclipse.jface.text.DocumentEvent event)
           
<T> T
getAdapter(java.lang.Class<T> adapterType)
           
 org.eclipse.jface.text.IRegion getLastDamage()
           
 org.eclipse.jface.text.Position[] getPositions(java.lang.String category)
           
 org.eclipse.jface.text.Position[] getPositions(java.lang.String category, int offset, int length, boolean canStartBefore, boolean canEndAfter)
           
 org.eclipse.emf.common.util.URI getResourceURI()
          Returns the uri of the associated emf resource.
 java.lang.Iterable<ILexerTokenRegion> getTokens()
           
 org.eclipse.core.runtime.jobs.Job getValidationJob()
           
<T> T
internalModify(IUnitOfWork<T,XtextResource> work)
          Modifies the document's semantic model without reconciling the text nor the node model.
<T> T
modify(IUnitOfWork<T,XtextResource> work)
           
protected  void notifyModelListeners(XtextResource res)
           
<T> T
readOnly(IUnitOfWork<T,XtextResource> work)
           
 void removeModelListener(IXtextModelListener listener)
           
 void removePosition(org.eclipse.jface.text.Position position)
           
 void removePosition(java.lang.String category, org.eclipse.jface.text.Position position)
           
 void removeXtextDocumentContentObserver(IXtextDocumentContentObserver observer)
           
 void setInput(XtextResource resource)
           
 void setValidationJob(org.eclipse.core.runtime.jobs.Job validationJob)
           
protected
<T> void
updateContentBeforeRead()
           
 
Methods inherited from class org.eclipse.jface.text.Document
isLineInformationRepairNeeded
 
Methods inherited from class org.eclipse.jface.text.AbstractDocument
acceptPostNotificationReplaces, addDocumentListener, addDocumentPartitioningListener, addDocumentRewriteSessionListener, addPositionCategory, addPositionUpdater, addPrenotifiedDocumentListener, checkStateOfPartitioner, completeInitialization, computeIndexInCategory, computeIndexInPositionList, computeIndexInPositionList, computeNumberOfLines, computePartitioning, computePartitioning, containsPosition, containsPositionCategory, doFireDocumentChanged, doFireDocumentChanged, doFireDocumentChanged2, fireDocumentAboutToBeChanged, 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, getPositionUpdaters, getStore, getTracker, ignorePostNotificationReplaces, insertPositionUpdater, registerPostNotificationReplace, removeDocumentListener, removeDocumentPartitioningListener, removeDocumentRewriteSessionListener, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.jface.text.IDocument
addDocumentListener, addDocumentPartitioningListener, addPositionCategory, addPositionUpdater, addPrenotifiedDocumentListener, computeIndexInCategory, computeNumberOfLines, computePartitioning, containsPosition, containsPositionCategory, get, get, getChar, getContentType, getDocumentPartitioner, getLegalContentTypes, getLegalLineDelimiters, getLength, getLineDelimiter, getLineInformation, getLineInformationOfOffset, getLineLength, getLineOffset, getLineOfOffset, getNumberOfLines, getNumberOfLines, getPartition, getPositionCategories, getPositionUpdaters, insertPositionUpdater, removeDocumentListener, removeDocumentPartitioningListener, removePositionCategory, removePositionUpdater, removePrenotifiedDocumentListener, replace, search, set, setDocumentPartitioner
 
Methods inherited from interface org.eclipse.jface.text.IDocumentExtension3
computePartitioning, getContentType, getDocumentPartitioner, getLegalContentTypes, getPartition, getPartitionings, setDocumentPartitioner
 

Constructor Detail

XtextDocument

@Inject
public XtextDocument(DocumentTokenSource tokenSource,
                            ITextEditComposer composer)
Method Detail

setInput

public void setInput(XtextResource resource)

disposeInput

public void disposeInput()

createDocumentLocker

protected XtextDocument.XtextDocumentLocker createDocumentLocker()

readOnly

public <T> T readOnly(IUnitOfWork<T,XtextResource> work)
Specified by:
readOnly in interface IReadAccess<XtextResource>

modify

public <T> T modify(IUnitOfWork<T,XtextResource> work)
Specified by:
modify in interface IWriteAccess<XtextResource>

internalModify

public <T> T internalModify(IUnitOfWork<T,XtextResource> work)
Modifies the document's semantic model without reconciling the text nor the node model. For internal use only.


ensureThatStateIsNotReturned

protected void ensureThatStateIsNotReturned(java.lang.Object exec,
                                            IUnitOfWork<?,XtextResource> uow)

addModelListener

public void addModelListener(IXtextModelListener listener)
Specified by:
addModelListener in interface IXtextDocument

removeModelListener

public void removeModelListener(IXtextModelListener listener)
Specified by:
removeModelListener in interface IXtextDocument

notifyModelListeners

protected void notifyModelListeners(XtextResource res)

addXtextDocumentContentObserver

public void addXtextDocumentContentObserver(IXtextDocumentContentObserver observer)
Specified by:
addXtextDocumentContentObserver in interface IXtextDocument

removeXtextDocumentContentObserver

public void removeXtextDocumentContentObserver(IXtextDocumentContentObserver observer)
Specified by:
removeXtextDocumentContentObserver in interface IXtextDocument

updateContentBeforeRead

protected <T> void updateContentBeforeRead()

setValidationJob

public void setValidationJob(org.eclipse.core.runtime.jobs.Job validationJob)

getValidationJob

public org.eclipse.core.runtime.jobs.Job getValidationJob()

checkAndUpdateAnnotations

public void checkAndUpdateAnnotations()

getResourceURI

public org.eclipse.emf.common.util.URI getResourceURI()
Returns the uri of the associated emf resource. May be null if no resource is available or its uri is null.

Returns:
the resource uri if available.
Since:
2.1

getAdapter

public <T> T getAdapter(java.lang.Class<T> adapterType)
Specified by:
getAdapter in interface IXtextDocument

getPositions

public org.eclipse.jface.text.Position[] getPositions(java.lang.String category,
                                                      int offset,
                                                      int length,
                                                      boolean canStartBefore,
                                                      boolean canEndAfter)
                                               throws org.eclipse.jface.text.BadPositionCategoryException
Overrides:
getPositions in class org.eclipse.jface.text.AbstractDocument
Throws:
org.eclipse.jface.text.BadPositionCategoryException

getPositions

public org.eclipse.jface.text.Position[] getPositions(java.lang.String category)
                                               throws org.eclipse.jface.text.BadPositionCategoryException
Specified by:
getPositions in interface org.eclipse.jface.text.IDocument
Overrides:
getPositions in class org.eclipse.jface.text.AbstractDocument
Throws:
org.eclipse.jface.text.BadPositionCategoryException

addPosition

public void addPosition(org.eclipse.jface.text.Position position)
                 throws org.eclipse.jface.text.BadLocationException
Specified by:
addPosition in interface org.eclipse.jface.text.IDocument
Overrides:
addPosition in class org.eclipse.jface.text.AbstractDocument
Throws:
org.eclipse.jface.text.BadLocationException

addPosition

public void addPosition(java.lang.String category,
                        org.eclipse.jface.text.Position position)
                 throws org.eclipse.jface.text.BadLocationException,
                        org.eclipse.jface.text.BadPositionCategoryException
Specified by:
addPosition in interface org.eclipse.jface.text.IDocument
Overrides:
addPosition in class org.eclipse.jface.text.AbstractDocument
Throws:
org.eclipse.jface.text.BadLocationException
org.eclipse.jface.text.BadPositionCategoryException

removePosition

public void removePosition(org.eclipse.jface.text.Position position)
Specified by:
removePosition in interface org.eclipse.jface.text.IDocument
Overrides:
removePosition in class org.eclipse.jface.text.AbstractDocument

removePosition

public void removePosition(java.lang.String category,
                           org.eclipse.jface.text.Position position)
                    throws org.eclipse.jface.text.BadPositionCategoryException
Specified by:
removePosition in interface org.eclipse.jface.text.IDocument
Overrides:
removePosition in class org.eclipse.jface.text.AbstractDocument
Throws:
org.eclipse.jface.text.BadPositionCategoryException

fireDocumentChanged

protected void fireDocumentChanged(org.eclipse.jface.text.DocumentEvent event)
Overrides:
fireDocumentChanged in class org.eclipse.jface.text.AbstractDocument

getLastDamage

public org.eclipse.jface.text.IRegion getLastDamage()

getTokens

public java.lang.Iterable<ILexerTokenRegion> getTokens()