Package org.eclipse.debug.core.sourcelookup

## Class AbstractSourceLookupParticipant

- java.lang.Object
- - org.eclipse.debug.core.sourcelookup.AbstractSourceLookupParticipant

All Implemented Interfaces:
  `ISourceLookupParticipant`

    public abstract class AbstractSourceLookupParticipant
    extends Object
    implements ISourceLookupParticipant

Common super class for implementations of source lookup participants.

Clients implementing source lookup participants should subclass this class.

Since:
  3.0

### Field Summary

Fields
`protected static Object[]` `EMPTY`

### Constructor Summary

Constructors
`AbstractSourceLookupParticipant()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `dispose()` Disposes this source lookup participant.
`Object[]` `findSourceElements​(Object object)` Returns a collection of source elements corresponding to the given debug artifact (for example, a stack frame or breakpoint).
`protected ISourceContainer` `getDelegateContainer​(ISourceContainer container)` Returns the source container to search in place of the given source container, or `null` if the given source container is not to be searched.
`protected ISourceLookupDirector` `getDirector()` Returns the source lookup director this participant is registered with or `null` if none.
`protected ISourceContainer[]` `getSourceContainers()` Returns the source containers currently registered with this participant's source lookup director.
`void` `init​(ISourceLookupDirector director)` Notification this participant has been added to the specified source lookup director.
`boolean` `isFindDuplicates()` Returns whether this participant's source lookup director is configured to search for duplicate source elements.
`void` `sourceContainersChanged​(ISourceLookupDirector director)` Notification that the source lookup containers in the given source lookup director have changed.

### 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.ISourceLookupParticipant

`getSourceName`

### Field Detail

#### EMPTY

    protected static final Object[] EMPTY

### Constructor Detail

#### AbstractSourceLookupParticipant

    public AbstractSourceLookupParticipant()

### Method Detail

#### init

    public void init​(ISourceLookupDirector director)

Description copied from interface: `ISourceLookupParticipant`
Notification this participant has been added to the specified source lookup director.

Specified by:
  `init` in interface `ISourceLookupParticipant`
Parameters:
  `director` - the source lookup director that this participant has been added to

#### dispose

    public void dispose()

Description copied from interface: `ISourceLookupParticipant`
Disposes this source lookup participant. This method is called when the source lookup director associated with this participant is disposed.

Specified by:
  `dispose` in interface `ISourceLookupParticipant`

#### findSourceElements

    public Object[] findSourceElements​(Object object)
                                throws CoreException

Description copied from interface: `ISourceLookupParticipant`
Returns a collection of source elements corresponding to the given debug artifact (for example, a stack frame or breakpoint). Returns an empty collection if no source elements are found. This participant's source lookup director specifies if duplicate source elements should be searched for, via `isFindDuplicates()`. When `false` the returned collection should contain at most one source element.

If the given debug artifact is not recognized by this participant, an empty collection is returned. Otherwise, this participant generates a source name from the given artifact and performs a search for associated source elements in its source containers.

Specified by:
  `findSourceElements` in interface `ISourceLookupParticipant`
Parameters:
  `object` - the debug artifact for which source needs to be found (e.g., stack frame)
Returns:
  a collection of source elements corresponding to the given debug artifact, possibly empty
Throws:
  `CoreException` - if an exception occurs while searching for source

#### getDelegateContainer

    protected ISourceContainer getDelegateContainer​(ISourceContainer container)

Returns the source container to search in place of the given source container, or `null` if the given source container is not to be searched. The default implementation does not translate source containers. Subclasses should override if required.

Parameters:
  `container` - the source container about to be searched (proxy)
Returns:
  the source container to be searched (delegate), or `null` if the source container should not be searched

#### getDirector

    protected ISourceLookupDirector getDirector()

Returns the source lookup director this participant is registered with or `null` if none.

Returns:
  the source lookup director this participant is registered with or `null` if none

#### isFindDuplicates

    public boolean isFindDuplicates()

Returns whether this participant's source lookup director is configured to search for duplicate source elements.

Returns:
  whether this participant's source lookup director is configured to search for duplicate source elements
Since:
  3.5

#### getSourceContainers

    protected ISourceContainer[] getSourceContainers()

Returns the source containers currently registered with this participant's source lookup director.

Returns:
  the source containers currently registered with this participant's source lookup director

#### sourceContainersChanged

    public void sourceContainersChanged​(ISourceLookupDirector director)

Description copied from interface: `ISourceLookupParticipant`
Notification that the source lookup containers in the given source lookup director have changed.

Specified by:
  `sourceContainersChanged` in interface `ISourceLookupParticipant`
Parameters:
  `director` - source lookup director that is directing this participant