# 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
Modifier and Type
Field
Description
`protected static final Object[]`
`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`AbstractSourceLookupParticipant()`

## Method Summary

Modifier and Type
Method
Description
`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 Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface ISourceLookupParticipant

`getSourceName`

## Field Details

### EMPTY

protected static final Object[] EMPTY

## Constructor Details

### AbstractSourceLookupParticipant

public AbstractSourceLookupParticipant()

## Method Details

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