|
Eclipse Platform Release 3.1 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector
Directs source lookup among a collection of source lookup participants, and a common collection of source containers. Each source lookup participant is a source locator itself, which allows more than one source locator to participate in source lookup for a launch. Each source lookup participant searches for source in the source containers managed by this director, and each participant is notified of changes in the source containers (i.e. when the set of source containers changes).
When a source director is intilaized, it adds it self as a launch listener, and automatically disposes itself when its associated launch is removed from the launch manager. If a source director is instantiated by a client that is not part of a launch, that client is responsible for disposing the source director.
Clients may subclass this class.
ISourceLocator
,
ISourceContainer
,
ISourceContainerType
,
ISourcePathComputer
,
ISourceLookupParticipant
Field Summary | |
---|---|
protected static String |
CONTAINER_MEMENTO_ATTR
|
protected static String |
CONTAINER_NODE
|
protected static String |
CONTAINER_TYPE_ATTR
|
protected static String |
CONTAINERS_NODE
|
protected static String |
DIRECTOR_ROOT_NODE
|
protected static String |
DUPLICATES_ATTR
|
protected ISourcePathComputer |
fComputer
|
protected ILaunchConfiguration |
fConfig
|
protected boolean |
fDuplicates
|
protected String |
fId
|
protected ArrayList |
fParticipants
|
protected static IStatus |
fPromptStatus
|
protected Map |
fResolvedElements
Cache of resolved source elements when duplicates exist. |
protected static IStatus |
fResolveDuplicatesStatus
|
protected ISourceContainer[] |
fSourceContainers
|
Constructor Summary | |
---|---|
AbstractSourceLookupDirector()
Constructs source lookup director |
Method Summary | |
---|---|
protected void |
abort(String message,
Throwable exception)
Throws an exception with the given message and underlying exception. |
void |
addParticipants(ISourceLookupParticipant[] participants)
Adds the given source lookup participants to this director. |
protected void |
cacheResolvedElement(List duplicates,
Object sourceElement)
Caches the resolved source element to use when one of the following duplicates is found. |
protected void |
clearCachedElement(Object duplicate)
Clears any cached source element associated with the given duplicate is source elemnet. |
void |
clearSourceElements(Object element)
Clears any source lookup results associated with the given debug artifact, such that a subsequent lookup will force a new search to be performed. |
void |
dispose()
Disposes this source locator. |
protected void |
doInitializeFromMemento(String memento,
boolean dispose)
Initializes this source lookup director from the given memento. |
protected List |
doSourceLookup(Object element)
Performs a source lookup query for the given element returning the source elements associated with the element. |
Object[] |
findSourceElements(Object object)
Returns a collection of source elements corresponding to the given debug artifact (for example, a stack frame or breakpoint). |
protected Object |
getCachedElement(Object duplicate)
Returns the cached source element to use when the given duplicate is encountered. |
String |
getId()
Returns the identifier of this type of source locator. |
ILaunchConfiguration |
getLaunchConfiguration()
Returns the launch configuration associated with this source lookup director, or null if none. |
String |
getMemento()
Returns a memento that can be used to reconstruct this source locator |
ISourceLookupParticipant[] |
getParticipants()
Returns the source lookup participants currently registered with this director, possibly an empty collection. |
ISourceContainer[] |
getSourceContainers()
Returns the source containers currently registered with this director, possibly an empty collection. |
Object |
getSourceElement(IStackFrame stackFrame)
Returns a source element that corresponds to the given stack frame, or null if a source element could not be located. |
Object |
getSourceElement(Object element)
Returns a source element that corresponds to the given debug artifact, or null if a source element could not be located. |
ISourcePathComputer |
getSourcePathComputer()
Returns the source path computer to use with this source lookup director, possibly null . |
void |
initializeDefaults(ILaunchConfiguration configuration)
Initializes this source locator to perform default source lookup for the given launch configuration. |
void |
initializeFromMemento(String memento)
Initializes this source locator based on the given memento. |
void |
initializeFromMemento(String memento,
ILaunchConfiguration configuration)
Initializes this source locator based on the given memento, for the given launch configuration. |
boolean |
isFindDuplicates()
Returns whether to search exhaustively for all source elements with the same name in all registered source containers, or whether to stop searching when the first source element matching the required name is found. |
void |
launchAdded(ILaunch launch)
Notifies this listener that the specified launch has been added. |
void |
launchChanged(ILaunch launch)
Notifies this listener that the specified launch has changed. |
void |
launchConfigurationAdded(ILaunchConfiguration configuration)
The given launch configuration has been created. |
void |
launchConfigurationChanged(ILaunchConfiguration configuration)
The given launch configuration has changed in some way. |
void |
launchConfigurationRemoved(ILaunchConfiguration configuration)
The given launch configuration has been deleted. |
void |
launchRemoved(ILaunch launch)
Notifies this listener that the specified launch has been removed. |
void |
removeParticipants(ISourceLookupParticipant[] participants)
Removes the given source lookup participants from this director. |
Object |
resolveSourceElement(Object element,
List sources)
Returns the source element to associate with the given element. |
void |
setFindDuplicates(boolean duplicates)
Sets whether to search exhaustively for all source elements with the same name in all registered source containers, or whether to stop searching when the first source element matching the required name is found. |
void |
setId(String id)
Sets the type identifier for this source locator's type |
protected void |
setLaunchConfiguration(ILaunchConfiguration configuration)
Sets the launch configuration associated with this source lookup director. |
void |
setSourceContainers(ISourceContainer[] containers)
Sets the source containers used by this source lookup director. |
void |
setSourcePathComputer(ISourcePathComputer computer)
Sets the source path computer for this source lookup director. |
boolean |
supportsSourceContainerType(ISourceContainerType type)
Returns whether this source director supports the given type of source location. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.debug.core.sourcelookup.ISourceLookupDirector |
---|
initializeParticipants |
Field Detail |
protected String fId
protected ArrayList fParticipants
protected ISourceContainer[] fSourceContainers
protected ILaunchConfiguration fConfig
protected boolean fDuplicates
protected ISourcePathComputer fComputer
protected Map fResolvedElements
protected static final IStatus fPromptStatus
protected static final IStatus fResolveDuplicatesStatus
protected static final String DIRECTOR_ROOT_NODE
protected static final String CONTAINERS_NODE
protected static final String DUPLICATES_ATTR
protected static final String CONTAINER_NODE
protected static final String CONTAINER_TYPE_ATTR
protected static final String CONTAINER_MEMENTO_ATTR
Constructor Detail |
public AbstractSourceLookupDirector()
Method Detail |
public void setId(String id)
id
- corresponds to source locator type identifier for a
persistable source locatorpublic void dispose()
IPersistableSourceLocator2
dispose
in interface IPersistableSourceLocator2
protected void abort(String message, Throwable exception) throws CoreException
message
- error messageexception
- underlying exception, or null
CoreException
public ISourceContainer[] getSourceContainers()
ISourceLookupDirector
getSourceContainers
in interface ISourceLookupDirector
public boolean isFindDuplicates()
ISourceLookupDirector
isFindDuplicates
in interface ISourceLookupDirector
public void setFindDuplicates(boolean duplicates)
ISourceLookupDirector
setFindDuplicates
in interface ISourceLookupDirector
duplicates
- whether to search exhaustively for all source elements
with the same namepublic void launchConfigurationAdded(ILaunchConfiguration configuration)
ILaunchConfigurationListener
launchConfigurationAdded
in interface ILaunchConfigurationListener
configuration
- the newly created launch configurationpublic void launchConfigurationChanged(ILaunchConfiguration configuration)
ILaunchConfigurationListener
launchConfigurationChanged
in interface ILaunchConfigurationListener
configuration
- the launch configuration that has
changedpublic void launchConfigurationRemoved(ILaunchConfiguration configuration)
ILaunchConfigurationListener
The launch configuration no longer exists. Data stored in the configuration can no longer be accessed, however handle-only attributes of the launch configuration can be retrieved.
launchConfigurationRemoved
in interface ILaunchConfigurationListener
configuration
- the deleted launch configurationpublic String getMemento() throws CoreException
IPersistableSourceLocator
getMemento
in interface IPersistableSourceLocator
CoreException
- if unable to construct a mementopublic void initializeFromMemento(String memento) throws CoreException
IPersistableSourceLocator
initializeFromMemento
in interface IPersistableSourceLocator
memento
- a memento to initialize this source locator
CoreException
- on failure to initializeprotected void doInitializeFromMemento(String memento, boolean dispose) throws CoreException
memento
- source locator mementodispose
- whether to dispose any current source containers and participants
before initializing
CoreException
- if an exception occurrs during initializationpublic void setSourceContainers(ISourceContainer[] containers)
setSourceContainers
in interface ISourceLookupDirector
containers
- source containers to searchpublic Object getSourceElement(IStackFrame stackFrame)
ISourceLocator
null
if a source element could not be located. The object returned
by this method will be used by the debug UI plug-in to display source.
The debug UI uses the debug model presentation associated
with the given stack frame's debug model to translate a source object into an
{editor input, editor id} pair in which to display source.
For example, a java source locator could return an object representing a compilation unit or class file. The java debug model presentation would then be responsible for providing an editor input and editor id for each compilation unit and class file such that the debug UI could display source.
getSourceElement
in interface ISourceLocator
stackFrame
- the stack frame for which to locate source
protected List doSourceLookup(Object element)
element
- stack frame
public Object resolveSourceElement(Object element, List sources)
Subclasses should override this method as appropriate. For example, to prompt the user to choose a source element.
element
- the debug artifact for which source is being searched forsources
- the source elements found for the given element
public void initializeFromMemento(String memento, ILaunchConfiguration configuration) throws CoreException
IPersistableSourceLocator2
initializeFrom(String memento)
defined in IPersistableSourceLocator
when a source
locator implements this interface.
initializeFromMemento
in interface IPersistableSourceLocator2
memento
- a memento to initialize this source locatorconfiguration
- the launch configuration this source locator is
being created for
CoreException
- on failure to initializepublic void initializeDefaults(ILaunchConfiguration configuration) throws CoreException
IPersistableSourceLocator
initializeDefaults
in interface IPersistableSourceLocator
configuration
- launch configuration this source locator
will be performing souce lookup for
CoreException
- on failure to initializepublic ILaunchConfiguration getLaunchConfiguration()
ISourceLookupDirector
null
if none.
getLaunchConfiguration
in interface ISourceLookupDirector
null
if noneprotected void setLaunchConfiguration(ILaunchConfiguration configuration)
configuration
- launch configuration to associate with this
source lookup director, or null
if nonepublic void launchAdded(ILaunch launch)
ILaunchListener
launchAdded
in interface ILaunchListener
launch
- the newly added launchpublic void launchChanged(ILaunch launch)
ILaunchListener
launchChanged
in interface ILaunchListener
launch
- the changed launchpublic void launchRemoved(ILaunch launch)
ILaunchListener
launchRemoved
in interface ILaunchListener
launch
- the removed launchpublic ISourceLookupParticipant[] getParticipants()
ISourceLookupDirector
getParticipants
in interface ISourceLookupDirector
public boolean supportsSourceContainerType(ISourceContainerType type)
ISourceLookupDirector
supportsSourceContainerType
in interface ISourceLookupDirector
type
- source container type
protected void cacheResolvedElement(List duplicates, Object sourceElement)
duplicates
- duplicates source elemnetssourceElement
- chosen source element to use in place of the
duplicatesprotected Object getCachedElement(Object duplicate)
duplicate
- duplicates source element
protected void clearCachedElement(Object duplicate)
duplicate
- duplicate source element to cache resolved results
forpublic void clearSourceElements(Object element)
ISourceLookupDirector
clearSourceElements
in interface ISourceLookupDirector
element
- debug artifact to clear source lookup results forpublic void addParticipants(ISourceLookupParticipant[] participants)
ISourceLookupDirector
addParticipants
in interface ISourceLookupDirector
participants
- participants to addpublic void removeParticipants(ISourceLookupParticipant[] participants)
ISourceLookupDirector
removeParticipants
in interface ISourceLookupDirector
participants
- participants to removepublic String getId()
ISourceLookupDirector
getId
in interface ISourceLookupDirector
public ISourcePathComputer getSourcePathComputer()
ISourceLookupDirector
null
. By default, the source path
computer returned is the one associated with this director's launch
configuration's type. However, the source path computer can be specified
programmatically by calling setSourcePathComputer(...)
.
getSourcePathComputer
in interface ISourceLookupDirector
null
public void setSourcePathComputer(ISourcePathComputer computer)
ISourceLookupDirector
null
is specified
the default source path computer will be used (i.e. the one assocaited
with this director's launch configuration's type).
setSourcePathComputer
in interface ISourceLookupDirector
computer
- source path computer or null
public Object[] findSourceElements(Object object) throws CoreException
ISourceLookupDirector
isFindDuplicates()
.
When false
the returned collection should contain at most one
source element.
findSourceElements
in interface ISourceLookupDirector
object
- the debug artifact for which source needs to be found (e.g., stack frame)
CoreException
- if an exception occurrs while searching for sourcepublic Object getSourceElement(Object element)
ISourceLookupDirector
null
if a source element could not be located. This is a
generalization of getSourceElement(IStackFrame)
to allow
source to be found for other types of elements.
getSourceElement
in interface ISourceLookupDirector
element
- the debug artifact for which to locate source
|
Eclipse Platform Release 3.1 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.