ISourceDocument Interface

com.bea.ide.sourceeditor
ISourceDocument Interface

public interface ISourceDocument

    extends IDocument

ISourceDocument should be implemented by all document types with text data that wish to perform basic compiler-related functionality such as syntax coloring and parse tree support.


All Known Implementing Classes
DefaultSourceDocument
All Superinterfaces
ICookieSupport, IDocument, IDriverSupport, IElement, IPropertySupport

Field Summary

public static final String
PROP_HAS_ERRORS
This is a boolean property indicating whether the document contains any diagnostics classified as errors.
public static final String
PROP_HAS_WARNINGS
This is a boolean property indicating whether the document contains any diagnostics classified as warnings.
public static final String
PROP_LAST_COMPILATION
This property is the unique ID (a Long) of the last compiler request for which the IDE had received a compiler compilation response for this file.
public static final String
PROP_LAST_COMPILATION_REQUEST
This property is the unique ID (a Long) of the last compilation request sent to the compiler.
public static final String
PROP_LAST_COMPILATION_TIME
This property is the time (in system milliseconds) of the last compiler response for this file.
public static final String
PROP_MID_TWOWAY_EDIT
This property indicates that a document is currently performing a two-way edit.
   
Fields from interface com.bea.ide.document.IDocument
KEY_HiddenEdit, KEY_UndoManager, PROP_DocumentDeleted, PROP_DocumentDirty, PROP_DocumentEditable, PROP_DocumentReadOnly, PROP_DocumentURI, PROP_ElementModified
 

Method Summary

public IElement
getElementFromOffset(int offset)
Returns the smallest elemnt that encloses the specified offset.
public ISourceModel
getSourceModel()
Returns the source model associated with this source document.
public IToken
getTokenFromOffset(int offset)
Returns the IToken object at the specified offset.
public boolean
mergeMetadata(ISourceElement sourceRootElement)
mergeMetaData is called by the IDE to indicate that a new parse tree is available due to a recompile.
 
Methods from interface com.bea.ide.core.ICookieSupport
addCookie, getCookie, removeCookie
 
Methods from interface com.bea.ide.document.IDocument
addElementChangeListener, getHandlerId, getIFile, getInputStream, getReader, getRootElement, getRootElement, getURI, getViewInfo, isBinary, isEditable, isModified, isReadOnly, makeEditable, onOpen, onRemove, onSave, reload, removeElementChangeListener, waitForRootElement
 
Methods from interface com.bea.ide.core.IDriverSupport
getDriver
 
Methods from interface com.bea.ide.element.IElement
getProperty, getPropertyDescriptors, setProperty
 
Methods from interface com.bea.ide.core.IPropertySupport
addPropertyChangeListener, addPropertyChangeListener, getProperty, removePropertyChangeListener, removePropertyChangeListener, setProperty
   

Field Detail

PROP_HAS_ERRORS

public static final String PROP_HAS_ERRORS
This is a boolean property indicating whether the document contains any diagnostics classified as errors.


PROP_HAS_WARNINGS

public static final String PROP_HAS_WARNINGS
This is a boolean property indicating whether the document contains any diagnostics classified as warnings.


PROP_LAST_COMPILATION

public static final String PROP_LAST_COMPILATION
This property is the unique ID (a Long) of the last compiler request for which the IDE had received a compiler compilation response for this file. Note that unsolicited (dependency) compilations will not set this property. If you need to know about every compilation, use the PROP_LAST_COMPILATION_TIME property. Listening on this property is useful if an extension requires finer-grained knowledge of compilation state than can be gained by listening to element change events alone. When used with property PROP_LAST_COMPILATION_REQUEST, this property can be used to determine when the compiler responds to specific compilation requests.


PROP_LAST_COMPILATION_REQUEST

public static final String PROP_LAST_COMPILATION_REQUEST
This property is the unique ID (a Long) of the last compilation request sent to the compiler. Listening on this property is useful if an extension requires finer-grained knowledge of compilation state than can be gained by listening to element change events alone. When used with property PROP_LAST_COMPILATION, this property can be used to determine when the compiler responds to specific compilation requests.


PROP_LAST_COMPILATION_TIME

public static final String PROP_LAST_COMPILATION_TIME
This property is the time (in system milliseconds) of the last compiler response for this file. This property is useful for clients who need to be notified of every compilation response, including those due to dependency changes. Clients who need to track specific requests and responses based on user edits should use PROP_LAST_COMPILATION_REQUEST and PROP_LAST_COMPILATION, which maintain comparable IDs.


PROP_MID_TWOWAY_EDIT

public static final String PROP_MID_TWOWAY_EDIT
This property indicates that a document is currently performing a two-way edit. Because two-way edits require multiple interactions between the IDE and compiler threads, there is a short period of time after the edit request during which the document does not fully reflect the change. This property can be used to detect when two-way edits start and complete.

 

Method Detail

getElementFromOffset(int) Method

public IElement getElementFromOffset(int offset)
Returns the smallest elemnt that encloses the specified offset. This method is expensive, and should be called as sparingly as possible.

Parameters

offset
a zero-based character index within the document.

Returns

the parse tree element found at the specified offset. May return null if the document is not parsed at the time that the method is called.

getSourceModel() Method

public ISourceModel getSourceModel()
Returns the source model associated with this source document. Once the file is initially loaded, this method should never return null.


getTokenFromOffset(int) Method

public IToken getTokenFromOffset(int offset)
Returns the IToken object at the specified offset. This method should never return null, though the token returned may simply indicate that the token information is currently unknown. Note that there is no guarantee that sequential calls to getTokenFromOffset will return the same object or value, as compiler structures are possibly being rebuilt at any time.

Parameters

offset
a zero-indexed character offset within a document.

Returns

returns the IToken object at the specified offset.

mergeMetadata(ISourceElement) Method

public boolean mergeMetadata(ISourceElement sourceRootElement)
mergeMetaData is called by the IDE to indicate that a new parse tree is available due to a recompile. Implementors guarantee that after the merge all elements with unchanged properties remain unchanged, with the exception of range and compiler cookie information, and that appropriate change events are generated for all elements that are not equivalent.