Interface ILaunchable
The debug platform uses the ILaunchable
interface as a tag for
objects that can be launched via the context menu 'Run As / Debug As' actions
and run/debug tool bar buttons. The platform checks if an ILaunchable
adapter is available from the selection/active editor to determine if it
should be considered for launching. However, the platform never actually
retrieves the adapter or calls any methods on it (the interface is, in fact,
empty).
The debug platform performs the following test:
-
Platform.getAdapterManager().hasAdapter(X, ILaunchable.class.getName());
Thus objects that can be launched need to register ILaunchable
adapters, but don't have to provide implementations. There is also no harm in
implementing the interface or providing the adapter. For example, JDT
contributes an adapter as follows. Although no adapter is actually provided
the platform will answer true
to hasAdapter(...)
.
<extension point="org.eclipse.core.runtime.adapters"> <factory class="" adaptableType="org.eclipse.jdt.core.IJavaElement"> <adapter type="org.eclipse.debug.ui.actions.ILaunchable"/> </factory> </extension>
Clients may contribute an adapter of this type for launchable objects via the
org.eclipse.core.runtime.adapters
extension point. A factory and
implementation of this interface are not actually required.
Clients that need to check for presence of launchable adapter using standard expression mechanism, should use a property tester as follows:
<with variable="selection"> <iterator operator="and" ifEmpty="false"> <test property="org.eclipse.debug.core.launchable" value="debug"/> </iterator> </with>
- Since:
- 3.0
- See Also: