Package org.eclipse.jdt.launching

## Class AbstractJavaLaunchConfigurationDelegate

- java.lang.Object
- - org.eclipse.debug.core.model.LaunchConfigurationDelegate
  - - org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate

All Implemented Interfaces:
  `IDebugEventSetListener`, `ILaunchConfigurationDelegate`, `ILaunchConfigurationDelegate2`

Direct Known Subclasses:
  `JavaLaunchDelegate`, `JUnitLaunchConfigurationDelegate`

    public abstract class AbstractJavaLaunchConfigurationDelegate
    extends LaunchConfigurationDelegate
    implements IDebugEventSetListener

Abstract implementation of a Java launch configuration delegate. Provides convenience methods for accessing and verifying launch configuration attributes.

Clients implementing Java launch configuration delegates should subclass this class.

Since:
  2.0

### Field Summary

### Fields inherited from class org.eclipse.debug.core.model.LaunchConfigurationDelegate

`complileErrorProjectPromptStatus, complileErrorPromptStatus, promptStatus, saveScopedDirtyEditors, switchToDebugPromptStatus`

### Constructor Summary

Constructors
`AbstractJavaLaunchConfigurationDelegate()`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`protected void` `abort​(String message, Throwable exception, int code)` Throws a core exception with an error status object built from the given message, lower level exception, and error code.
`protected void` `allowAdvancedSourcelookup()` Enabled advanced sourcelookup for this launch delegate.
`String[]` `getBootpath​(ILaunchConfiguration configuration)` Returns entries that should appear on the bootstrap portion of the classpath as specified by the given launch configuration, as an array of resolved strings.
`String[][]` `getBootpathExt​(ILaunchConfiguration configuration)` Returns three sets of entries which represent the boot classpath specified in the launch configuration, as an array of three arrays of resolved strings.
`protected IBreakpoint[]` `getBreakpoints​(ILaunchConfiguration configuration)`
`protected IProject[]` `getBuildOrder​(ILaunchConfiguration configuration, String mode)`
`String[]` `getClasspath​(ILaunchConfiguration configuration)` Deprecated. use getClasspathAndModulepath
`String[][]` `getClasspathAndModulepath​(ILaunchConfiguration config)` Returns the entries that should appear on the user portion of the classpath and modulepath as specified by the given launch configuration, as an array of resolved strings.
`protected File` `getDefaultWorkingDirectory​(ILaunchConfiguration configuration)` Returns the default working directory for the given launch configuration, or `null` if none.
`String[]` `getEnvironment​(ILaunchConfiguration configuration)` Returns an array of environment variables to be used when launching the given configuration or `null` if unspecified.
`String[]` `getJavaLibraryPath​(ILaunchConfiguration configuration)` Returns an array of paths to be used for the `java.library.path` system property, or `null` if unspecified.
`IJavaProject` `getJavaProject​(ILaunchConfiguration configuration)` Returns the Java project specified by the given launch configuration, or `null` if none.
`String` `getJavaProjectName​(ILaunchConfiguration configuration)` Returns the Java project name specified by the given launch configuration, or `null` if none.
`ILaunch` `getLaunch​(ILaunchConfiguration configuration, String mode)`
`protected ILaunchManager` `getLaunchManager()` Convenience method to get the launch manager.
`String` `getMainTypeName​(ILaunchConfiguration configuration)` Returns the main type name specified by the given launch configuration, or `null` if none.
`String` `getModuleCLIOptions​(ILaunchConfiguration configuration)` Returns the module-related command line options for the configuration that are needed at runtime as equivalents of those options specified by `IClasspathAttribute`s of the following names: `IClasspathAttribute.ADD_EXPORTS` `IClasspathAttribute.ADD_READS` `IClasspathAttribute.LIMIT_MODULES` `IClasspathAttribute.PATCH_MODULE`
`String` `getProgramArguments​(ILaunchConfiguration configuration)` Returns the program arguments specified by the given launch configuration, as a string.
`protected IProject[]` `getProjectsForProblemSearch​(ILaunchConfiguration configuration, String mode)`
`String` `getVMArguments​(ILaunchConfiguration configuration)` Returns the VM arguments specified by the given launch configuration, as a string.
`String` `getVMArguments​(ILaunchConfiguration configuration, String mode)` Returns the VM arguments specified by the given launch configuration, as a string.
`String` `getVMConnectorId​(ILaunchConfiguration configuration)` Returns the VM connector identifier specified by the given launch configuration, or `null` if none.
`IVMInstall` `getVMInstall​(ILaunchConfiguration configuration)` Returns the VM install specified by the given launch configuration, or `null` if none.
`String` `getVMInstallName​(ILaunchConfiguration configuration)` Returns the VM install name specified by the given launch configuration, or `null` if none.
`IVMInstallType` `getVMInstallType​(ILaunchConfiguration configuration)` Returns the VM install type specified by the given launch configuration, or `null` if none.
`String` `getVMInstallTypeId​(ILaunchConfiguration configuration)` Returns the VM install type identifier specified by the given launch configuration, or `null` if none.
`IVMRunner` `getVMRunner​(ILaunchConfiguration configuration, String mode)` Returns the VM runner for the given launch mode to use when launching the given configuration.
`Map<String,​Object>` `getVMSpecificAttributesMap​(ILaunchConfiguration configuration)` Returns the Map of VM-specific attributes specified by the given launch configuration, or `null` if none.
`File` `getWorkingDirectory​(ILaunchConfiguration configuration)` Returns the working directory specified by the given launch configuration, or `null` if none.
`IPath` `getWorkingDirectoryPath​(ILaunchConfiguration configuration)` Returns the working directory path specified by the given launch configuration, or `null` if none.
`void` `handleDebugEvents​(DebugEvent[] events)` Handles the "stop-in-main" option.
`boolean` `isAllowTerminate​(ILaunchConfiguration configuration)` Returns whether the given launch configuration specifies that termination is allowed.
`protected boolean` `isLaunchProblem​(IMarker problemMarker)`
`boolean` `isStopInMain​(ILaunchConfiguration configuration)` Returns whether the given launch configuration specifies that execution should suspend on entry of the main method.
`boolean` `preLaunchCheck​(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor)`
`protected void` `prepareStopInMain​(ILaunchConfiguration configuration)` Determines if the given launch configuration specifies the "stop-in-main" attribute, and sets up an event listener to handle the option if required.
`protected void` `setDefaultSourceLocator​(ILaunch launch, ILaunchConfiguration configuration)` Assigns a default source locator to the given launch if a source locator has not yet been assigned to it, and the associated launch configuration does not specify a source locator.
`protected boolean` `supportsModule()` Supports modular class for launching.
`IJavaProject` `verifyJavaProject​(ILaunchConfiguration configuration)` Verifies a Java project is specified by the given launch configuration, and returns the Java project.
`String` `verifyMainTypeName​(ILaunchConfiguration configuration)` Verifies a main type name is specified by the given launch configuration, and returns the main type name.
`IVMInstall` `verifyVMInstall​(ILaunchConfiguration configuration)` Verifies the VM install specified by the given launch configuration exists and returns the VM install.
`File` `verifyWorkingDirectory​(ILaunchConfiguration configuration)` Verifies the working directory specified by the given launch configuration exists, and returns the working directory, or `null` if none is specified.

### Methods inherited from class org.eclipse.debug.core.model.LaunchConfigurationDelegate

`addReferencedProjects, buildForLaunch, buildProjects, computeBuildOrder, computeReferencedBuildOrder, existsProblems, finalLaunchCheck, saveBeforeLaunch`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.eclipse.debug.core.model.ILaunchConfigurationDelegate

`launch, showCommandLine`

### Constructor Detail

#### AbstractJavaLaunchConfigurationDelegate

    public AbstractJavaLaunchConfigurationDelegate()

### Method Detail

#### getLaunchManager

    protected ILaunchManager getLaunchManager()

Convenience method to get the launch manager.

Returns:
  the launch manager

#### abort

    protected void abort​(String message,
                         Throwable exception,
                         int code)
                  throws CoreException

Throws a core exception with an error status object built from the given message, lower level exception, and error code.

Parameters:
  `message` - the status message
  `exception` - lower level exception associated with the error, or `null` if none
  `code` - error code
Throws:
  `CoreException` - the "abort" core exception

#### getVMInstall

    public IVMInstall getVMInstall​(ILaunchConfiguration configuration)
                            throws CoreException

Returns the VM install specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM install specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getVMInstallName

    public String getVMInstallName​(ILaunchConfiguration configuration)
                            throws CoreException

Returns the VM install name specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM install name specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getVMInstallType

    public IVMInstallType getVMInstallType​(ILaunchConfiguration configuration)
                                    throws CoreException

Returns the VM install type specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM install type specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getVMInstallTypeId

    public String getVMInstallTypeId​(ILaunchConfiguration configuration)
                              throws CoreException

Returns the VM install type identifier specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM install type identifier specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### verifyVMInstall

    public IVMInstall verifyVMInstall​(ILaunchConfiguration configuration)
                               throws CoreException

Verifies the VM install specified by the given launch configuration exists and returns the VM install.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM install specified by the given launch configuration
Throws:
  `CoreException` - if unable to retrieve the attribute, the attribute is unspecified, or if the home location is unspecified or does not exist

#### getVMConnectorId

    public String getVMConnectorId​(ILaunchConfiguration configuration)
                            throws CoreException

Returns the VM connector identifier specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM connector identifier specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getBootpath

    public String[] getBootpath​(ILaunchConfiguration configuration)
                         throws CoreException

Returns entries that should appear on the bootstrap portion of the classpath as specified by the given launch configuration, as an array of resolved strings. The returned array is `null` if all entries are standard (i.e. appear by default), or empty to represent an empty bootpath.

Parameters:
  `configuration` - launch configuration
Returns:
  the bootpath specified by the given launch configuration. An empty bootpath is specified by an empty array, and `null` represents a default bootpath.
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getBootpathExt

    public String[][] getBootpathExt​(ILaunchConfiguration configuration)
                              throws CoreException

Returns three sets of entries which represent the boot classpath specified in the launch configuration, as an array of three arrays of resolved strings. The first array represents the classpath that should be prepended to the boot classpath. The second array represents the main part of the boot classpath -`null` represents the default bootclasspath. The third array represents the classpath that should be appended to the boot classpath.

Parameters:
  `configuration` - launch configuration
Returns:
  a description of the boot classpath specified by the given launch configuration.
Throws:
  `CoreException` - if unable to retrieve the attribute
Since:
  3.0

#### getClasspath

    @Deprecated
    public String[] getClasspath​(ILaunchConfiguration configuration)
                          throws CoreException

Deprecated.
use getClasspathAndModulepath
Returns the entries that should appear on the user portion of the classpath as specified by the given launch configuration, as an array of resolved strings. The returned array is empty if no classpath is specified.

Parameters:
  `configuration` - launch configuration
Returns:
  the classpath specified by the given launch configuration, possibly an empty array
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getClasspathAndModulepath

    public String[][] getClasspathAndModulepath​(ILaunchConfiguration config)
                                         throws CoreException

Returns the entries that should appear on the user portion of the classpath and modulepath as specified by the given launch configuration, as an array of resolved strings. The returned array is empty if no classpath and modulepath is specified.

Parameters:
  `config` - launch configuration
Returns:
  the classpath and modulepath specified by the given launch configuration, possibly an empty array
Throws:
  `CoreException` - if unable to retrieve the attribute
Since:
  3.10

#### getJavaProject

    public IJavaProject getJavaProject​(ILaunchConfiguration configuration)
                                throws CoreException

Returns the Java project specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the Java project specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getJavaProjectName

    public String getJavaProjectName​(ILaunchConfiguration configuration)
                              throws CoreException

Returns the Java project name specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the Java project name specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getMainTypeName

    public String getMainTypeName​(ILaunchConfiguration configuration)
                           throws CoreException

Returns the main type name specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the main type name specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getProgramArguments

    public String getProgramArguments​(ILaunchConfiguration configuration)
                               throws CoreException

Returns the program arguments specified by the given launch configuration, as a string. The returned string is empty if no program arguments are specified.

Parameters:
  `configuration` - launch configuration
Returns:
  the program arguments specified by the given launch configuration, possibly an empty string
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getVMArguments

    public String getVMArguments​(ILaunchConfiguration configuration)
                          throws CoreException

Returns the VM arguments specified by the given launch configuration, as a string. The returned string is empty if no VM arguments are specified.

Parameters:
  `configuration` - launch configuration
Returns:
  the VM arguments specified by the given launch configuration, possibly an empty string
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getVMArguments

    public String getVMArguments​(ILaunchConfiguration configuration,
                                 String mode)
                          throws CoreException

Returns the VM arguments specified by the given launch configuration, as a string. The returned string is empty if no VM arguments are specified.

Parameters:
  `configuration` - launch configuration
  `mode` - the mode in which to launch, one of the mode constants defined by `ILaunchManager` - `RUN_MODE` or `DEBUG_MODE`.
Returns:
  the VM arguments specified by the given launch configuration, possibly an empty string
Throws:
  `CoreException` - if unable to retrieve the attribute
Since:
  3.10

#### getVMSpecificAttributesMap

    public Map<String,​Object> getVMSpecificAttributesMap​(ILaunchConfiguration configuration)
                                                        throws CoreException

Returns the Map of VM-specific attributes specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the `Map` of VM-specific attributes
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getWorkingDirectory

    public File getWorkingDirectory​(ILaunchConfiguration configuration)
                             throws CoreException

Returns the working directory specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the working directory specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### getWorkingDirectoryPath

    public IPath getWorkingDirectoryPath​(ILaunchConfiguration configuration)
                                  throws CoreException

Returns the working directory path specified by the given launch configuration, or `null` if none.

Parameters:
  `configuration` - launch configuration
Returns:
  the working directory path specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### verifyJavaProject

    public IJavaProject verifyJavaProject​(ILaunchConfiguration configuration)
                                   throws CoreException

Verifies a Java project is specified by the given launch configuration, and returns the Java project.

Parameters:
  `configuration` - launch configuration
Returns:
  the Java project specified by the given launch configuration
Throws:
  `CoreException` - if unable to retrieve the attribute or the attribute is unspecified

#### verifyMainTypeName

    public String verifyMainTypeName​(ILaunchConfiguration configuration)
                              throws CoreException

Verifies a main type name is specified by the given launch configuration, and returns the main type name.

Parameters:
  `configuration` - launch configuration
Returns:
  the main type name specified by the given launch configuration
Throws:
  `CoreException` - if unable to retrieve the attribute or the attribute is unspecified

#### verifyWorkingDirectory

    public File verifyWorkingDirectory​(ILaunchConfiguration configuration)
                                throws CoreException

Verifies the working directory specified by the given launch configuration exists, and returns the working directory, or `null` if none is specified.

Parameters:
  `configuration` - launch configuration
Returns:
  the working directory specified by the given launch configuration, or `null` if none
Throws:
  `CoreException` - if unable to retrieve the attribute

#### isAllowTerminate

    public boolean isAllowTerminate​(ILaunchConfiguration configuration)
                             throws CoreException

Returns whether the given launch configuration specifies that termination is allowed.

Parameters:
  `configuration` - launch configuration
Returns:
  whether termination is allowed
Throws:
  `CoreException` - if unable to retrieve the attribute

#### isStopInMain

    public boolean isStopInMain​(ILaunchConfiguration configuration)
                         throws CoreException

Returns whether the given launch configuration specifies that execution should suspend on entry of the main method.

Parameters:
  `configuration` - launch configuration
Returns:
  whether execution should suspend in main
Throws:
  `CoreException` - if unable to retrieve the attribute
Since:
  2.1

#### setDefaultSourceLocator

    protected void setDefaultSourceLocator​(ILaunch launch,
                                           ILaunchConfiguration configuration)
                                    throws CoreException

Assigns a default source locator to the given launch if a source locator has not yet been assigned to it, and the associated launch configuration does not specify a source locator.

Parameters:
  `launch` - launch object
  `configuration` - configuration being launched
Throws:
  `CoreException` - if unable to set the source locator

#### prepareStopInMain

    protected void prepareStopInMain​(ILaunchConfiguration configuration)
                              throws CoreException

Determines if the given launch configuration specifies the "stop-in-main" attribute, and sets up an event listener to handle the option if required.

Parameters:
  `configuration` - configuration being launched
Throws:
  `CoreException` - if unable to access the attribute
Since:
  2.1

#### handleDebugEvents

    public void handleDebugEvents​(DebugEvent[] events)

Handles the "stop-in-main" option.

Specified by:
  `handleDebugEvents` in interface `IDebugEventSetListener`
Parameters:
  `events` - the debug events.
See Also:
  `IDebugEventSetListener.handleDebugEvents(DebugEvent[])`

#### getBuildOrder

    protected IProject[] getBuildOrder​(ILaunchConfiguration configuration,
                                       String mode)
                                throws CoreException

Overrides:
  `getBuildOrder` in class `LaunchConfigurationDelegate`
Throws:
  `CoreException`

#### getProjectsForProblemSearch

    protected IProject[] getProjectsForProblemSearch​(ILaunchConfiguration configuration,
                                                     String mode)
                                              throws CoreException

Overrides:
  `getProjectsForProblemSearch` in class `LaunchConfigurationDelegate`
Throws:
  `CoreException`

#### isLaunchProblem

    protected boolean isLaunchProblem​(IMarker problemMarker)
                               throws CoreException

Overrides:
  `isLaunchProblem` in class `LaunchConfigurationDelegate`
Throws:
  `CoreException`

#### preLaunchCheck

    public boolean preLaunchCheck​(ILaunchConfiguration configuration,
                                  String mode,
                                  IProgressMonitor monitor)
                           throws CoreException

Specified by:
  `preLaunchCheck` in interface `ILaunchConfigurationDelegate2`
Overrides:
  `preLaunchCheck` in class `LaunchConfigurationDelegate`
Throws:
  `CoreException`

#### getBreakpoints

    protected IBreakpoint[] getBreakpoints​(ILaunchConfiguration configuration)

Overrides:
  `getBreakpoints` in class `LaunchConfigurationDelegate`

#### getVMRunner

    public IVMRunner getVMRunner​(ILaunchConfiguration configuration,
                                 String mode)
                          throws CoreException

Returns the VM runner for the given launch mode to use when launching the given configuration.

Parameters:
  `configuration` - launch configuration
  `mode` - launch node
Returns:
  VM runner to use when launching the given configuration in the given mode
Throws:
  `CoreException` - if a VM runner cannot be determined
Since:
  3.1

#### getEnvironment

    public String[] getEnvironment​(ILaunchConfiguration configuration)
                            throws CoreException

Returns an array of environment variables to be used when launching the given configuration or `null` if unspecified.

Parameters:
  `configuration` - launch configuration
Returns:
  an array of environment variables to use when launching the given configuration or null if unspecified
Throws:
  `CoreException` - if unable to access associated attribute or if unable to resolve a variable in an environment variable's value
Since:
  3.1

#### getJavaLibraryPath

    public String[] getJavaLibraryPath​(ILaunchConfiguration configuration)
                                throws CoreException

Returns an array of paths to be used for the `java.library.path` system property, or `null` if unspecified.

Parameters:
  `configuration` - the config
Returns:
  an array of paths to be used for the `java.library.path` system property, or `null`
Throws:
  `CoreException` - if unable to determine the attribute
Since:
  3.1

#### getDefaultWorkingDirectory

    protected File getDefaultWorkingDirectory​(ILaunchConfiguration configuration)
                                       throws CoreException

Returns the default working directory for the given launch configuration, or `null` if none. Subclasses may override as necessary.

Parameters:
  `configuration` - the config
Returns:
  default working directory or `null` if none
Throws:
  `CoreException` - if an exception occurs computing the default working directory
Since:
  3.2

#### getLaunch

    public ILaunch getLaunch​(ILaunchConfiguration configuration,
                             String mode)
                      throws CoreException

Specified by:
  `getLaunch` in interface `ILaunchConfigurationDelegate2`
Overrides:
  `getLaunch` in class `LaunchConfigurationDelegate`
Throws:
  `CoreException`

#### allowAdvancedSourcelookup

    protected final void allowAdvancedSourcelookup()

Enabled advanced sourcelookup for this launch delegate. Advanced source lookup is disabled by default. This call has not effect if advanced source lookup is disabled at workspace level, i.e. advanced source lookup will remain disabled even if this method is called for the launch delegate instance.

Since:
  3.10

#### getModuleCLIOptions

    public String getModuleCLIOptions​(ILaunchConfiguration configuration)
                               throws CoreException

Returns the module-related command line options for the configuration that are needed at runtime as equivalents of those options specified by `IClasspathAttribute`s of the following names:

- `IClasspathAttribute.ADD_EXPORTS`
- `IClasspathAttribute.ADD_READS`
- `IClasspathAttribute.LIMIT_MODULES`
- `IClasspathAttribute.PATCH_MODULE`

Throws:
  `CoreException`
Since:
  3.10

#### supportsModule

    protected boolean supportsModule()

Supports modular class for launching.

Since:
  3.12