Package org.eclipse.launchbar.core

# Interface ILaunchConfigurationProvider

All Known Implementing Classes:
  `AbstractLaunchConfigProvider`, `DefaultLaunchConfigProvider`, `PerTargetLaunchConfigProvider`, `ProjectLaunchConfigProvider`, `ProjectPerTargetLaunchConfigProvider`

public interface ILaunchConfigurationProvider
The provider of launch configurations of a given type for a given descriptor type and a given target type. It is recommended to extend `AbstractLaunchConfigProvider` or one of it's subclasses instead of implementing this directly.

## Method Summary

Modifier and Type
Method
Description
`org.eclipse.debug.core.ILaunchConfiguration`
`getLaunchConfiguration(ILaunchDescriptor descriptor, ILaunchTarget target)`
Create a launch configuration for the descriptor to launch on the target.
`org.eclipse.debug.core.ILaunchConfigurationType`
`getLaunchConfigurationType(ILaunchDescriptor descriptor, ILaunchTarget target)`
Return the launch configuation type for the descriptor and target.
`boolean`
`launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration configuration)`
A launch configuration has been added.
`boolean`
`launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration configuration)`
A launch configuration has been changed.
`boolean`
`launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration configuration)`
A launch configuration has been removed.
`boolean`
`launchDescriptorMatches(ILaunchDescriptor descriptor, org.eclipse.debug.core.ILaunchConfiguration configuration, ILaunchTarget target)`
Return true if given descriptor is associated with given launch configuration.
`void`
`launchDescriptorRemoved(ILaunchDescriptor descriptor)`
A launch descriptor has been removed.
`void`
`launchTargetRemoved(ILaunchTarget target)`
A launch target has been removed.
`boolean`
`supports(ILaunchDescriptor descriptor, ILaunchTarget target)`
Does this config provider provide launch configurations for the combination of descriptor and target.

## Method Details

### supports

boolean supports(ILaunchDescriptor descriptor, ILaunchTarget target) throws org.eclipse.core.runtime.CoreException
Does this config provider provide launch configurations for the combination of descriptor and target. Note: this is called when filtering targets for a descriptor. Processing should be minimal.

Parameters:
  `descriptor` -
  `target` -
Returns:
  true if target is supported, false otherwise.
Throws:
  `org.eclipse.core.runtime.CoreException`

### getLaunchConfigurationType

org.eclipse.debug.core.ILaunchConfigurationType getLaunchConfigurationType(ILaunchDescriptor descriptor, ILaunchTarget target) throws org.eclipse.core.runtime.CoreException
Return the launch configuation type for the descriptor and target.

Parameters:
  `descriptor` -
  `target` - launch configuration type or null if not supported
Returns:
Throws:
  `org.eclipse.core.runtime.CoreException`

### getLaunchConfiguration

org.eclipse.debug.core.ILaunchConfiguration getLaunchConfiguration(ILaunchDescriptor descriptor, ILaunchTarget target) throws org.eclipse.core.runtime.CoreException
Create a launch configuration for the descriptor to launch on the target.

Parameters:
  `descriptor` - the descriptor to create the config for
  `target` - the target to launch the config on
Returns:
  launch configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchDescriptorMatches

boolean launchDescriptorMatches(ILaunchDescriptor descriptor, org.eclipse.debug.core.ILaunchConfiguration configuration, ILaunchTarget target) throws org.eclipse.core.runtime.CoreException
Return true if given descriptor is associated with given launch configuration. I.e. if getLaunchConfiguration(descriptor, target) returns a launch configuration, calling launchDescriptorMatches(descriptor, configuration, target) should return true. This method is used to activate descriptor when launch happens, return false all the time would mean launch would track launches of this specific descriptor (if they occur outside of launchbar).

Parameters:
  `configuration` - launch configuration in question
  `target` - - target to match, it can be null if launch bar cannot determine target, in this case it should act as wildcard
Returns:
  launch configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchConfigurationAdded

boolean launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration configuration) throws org.eclipse.core.runtime.CoreException
A launch configuration has been added. Provider can inspect it and associate with internal map. Provider should make sure it owns this launch configuration or it can modify it to take over.

Returns:
  true of provider owns this launch configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchConfigurationRemoved

boolean launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration configuration) throws org.eclipse.core.runtime.CoreException
A launch configuration has been removed. This notification can be used to purge internal cache for example. This method is called after launch configuration has been removed from file system, so accessing its attributes won't work. If provider cannot determine if it owns it it should return false.

Parameters:
  `configuration` -
Returns:
  true if provider owns this launch configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchConfigurationChanged

boolean launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration configuration) throws org.eclipse.core.runtime.CoreException
A launch configuration has been changed. Provider can inspect it to re-evaluate its internal map. Provider should make sure it owns this launch configuration or it can modify it to take over.

Returns:
  true of provider owns this launch configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchDescriptorRemoved

void launchDescriptorRemoved(ILaunchDescriptor descriptor) throws org.eclipse.core.runtime.CoreException
A launch descriptor has been removed. Remove any launch configurations that were created for it.

Parameters:
  `descriptor` -
Throws:
  `org.eclipse.core.runtime.CoreException`

### launchTargetRemoved

void launchTargetRemoved(ILaunchTarget target) throws org.eclipse.core.runtime.CoreException
A launch target has been removed. Remove any launch configurations that were created for it.

Parameters:
  `target` -
Throws:
  `org.eclipse.core.runtime.CoreException`