# Interface ISourcePresentation

All Known Subinterfaces:
  `IDebugModelPresentation, IDebugModelPresentationExtension, IInstructionPointerPresentation, IMemoryBlockTablePresentation`

public interface ISourcePresentation
A source presentation is used to resolve an editor in which to display a debug model element, breakpoint, or source element. By default, a debug model presentation (which implements this interface) is used to resolve editors when performing source lookup. However, a source locator may override default editor resolution by implementing this interface.

Source lookup consists of the following steps:

1. Locating a source element - the source locator associated with a launch is queried for the source element associated with a stack frame.
2. Resolving an editor in which to display a source element - by default, the debug model presentation associated with the debug model being debugged is queried for an editor input and editor id in which to display a source element. However, clients may override editor resolution by specifying a source locator that is an instance of `ISourcePresentation`. When a source presentation is specified as a source locator, the source presentation is used to resolve an editor, rather than the default debug model presentation.

Clients may implement this interface as part of an `IDebugModelPresentation` or as an optional extension to an `ISourceLocator`.

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`String`
`getEditorId(IEditorInput input, Object element)`
Returns the id of the editor to use to display the given editor input and object, or `null` if unable to provide an editor id.
`IEditorInput`
`getEditorInput(Object element)`
Returns an editor input that should be used to display the given object in an editor or `null` if unable to provide an editor input for the given object.

## Method Details

### getEditorInput

IEditorInput getEditorInput(Object element)
Returns an editor input that should be used to display the given object in an editor or `null` if unable to provide an editor input for the given object.

Parameters:
  `element` - a debug model element, breakpoint, or a source element that was returned by a source locator's `getSourceElement(IStackFrame)` method
Returns:
  an editor input, or `null` if none

### getEditorId

String getEditorId(IEditorInput input, Object element)
Returns the id of the editor to use to display the given editor input and object, or `null` if unable to provide an editor id.

Parameters:
  `input` - an editor input that was previously retrieved from this source presentation's `getEditorInput` method
  `element` - the object that was used in the call to `getEditorInput`, that corresponds to the given editor input
Returns:
  an editor id, or `null` if none