Package org.eclipse.debug.ui.actions

# Interface ILaunchable

public interface ILaunchable
Interface used to tag objects as launchable. Objects that provide an adapter of this type will be considered by the contextual launch support.

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:
  - `ContextualLaunchAction`