Package org.eclipse.jdt.launching

# Class AbstractVMInstallType

java.lang.Object
org.eclipse.jdt.launching.AbstractVMInstallType

All Implemented Interfaces:
  `IExecutableExtension`, `IVMInstallType`

public abstract class AbstractVMInstallType extends Object implements IVMInstallType, IExecutableExtension
Abstract implementation of a VM install type. Subclasses should implement

- `IVMInstall doCreateVMInstall(String id)`
- `String getName()`
- `IStatus validateInstallLocation(File installLocation)`

Clients implementing VM install types should subclass this class.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractVMInstallType()`
Constructs a new VM install type.

## Method Summary

Modifier and Type
Method
Description
`IVMInstall`
`createVMInstall(String id)`
Creates a new instance of this VM Install type.
`void`
`disposeVMInstall(String id)`
Remove the VM associated with the given id from the set of VMs managed by this VM type.
`protected abstract IVMInstall`
`doCreateVMInstall(String id)`
Subclasses should return a new instance of the appropriate `IVMInstall` subclass from this method.
`IVMInstall`
`findVMInstall(String id)`
Finds the VM with the given id.
`IVMInstall`
`findVMInstallByName(String name)`
Finds the VM with the given name.
`URL`
`getDefaultJavadocLocation(File installLocation)`
Returns a URL for the default javadoc location of a VM installed at the given home location, or `null` if none.
`String`
`getDefaultVMArguments(File installLocation)`
Returns a string of default VM arguments for a VM installed at the given home location, or `null` if none.
`String`
`getId()`
Returns the globally unique id of this VM type.
`IVMInstall[]`
`getVMInstalls()`
Returns all VM instances managed by this VM type.
`void`
`setInitializationData(IConfigurationElement config, String propertyName, Object data)`
Initializes the id parameter from the "id" attribute in the configuration markup.

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

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

### Methods inherited from interface org.eclipse.jdt.launching.IVMInstallType

`detectInstallLocation, getDefaultLibraryLocations, getName, validateInstallLocation`

## Constructor Details

### AbstractVMInstallType

protected AbstractVMInstallType()
Constructs a new VM install type.

## Method Details

### getVMInstalls

public IVMInstall[] getVMInstalls()
Description copied from interface: `IVMInstallType`
Returns all VM instances managed by this VM type.

Specified by:
  `getVMInstalls` in interface `IVMInstallType`
Returns:
  the list of VM instances managed by this VM type

### disposeVMInstall

public void disposeVMInstall(String id)
Description copied from interface: `IVMInstallType`
Remove the VM associated with the given id from the set of VMs managed by this VM type. Has no effect if a VM with the given id is not currently managed by this type. A VM install that is disposed may not be used anymore.

Specified by:
  `disposeVMInstall` in interface `IVMInstallType`
Parameters:
  `id` - the id of the VM to be disposed.

### findVMInstall

public IVMInstall findVMInstall(String id)
Description copied from interface: `IVMInstallType`
Finds the VM with the given id.

Specified by:
  `findVMInstall` in interface `IVMInstallType`
Parameters:
  `id` - the VM id
Returns:
  a VM instance, or `null` if not found

### createVMInstall

public IVMInstall createVMInstall(String id) throws IllegalArgumentException
Description copied from interface: `IVMInstallType`
Creates a new instance of this VM Install type. The newly created IVMInstall is managed by this IVMInstallType.

Specified by:
  `createVMInstall` in interface `IVMInstallType`
Parameters:
  `id` - An id String that must be unique within this IVMInstallType.
Returns:
  the newly created VM instance
Throws:
  `IllegalArgumentException` - If the id exists already.

### doCreateVMInstall

protected abstract IVMInstall doCreateVMInstall(String id)
Subclasses should return a new instance of the appropriate `IVMInstall` subclass from this method.

Parameters:
  `id` - The vm's id. The `IVMInstall` instance that is created must return `id` from its `getId()` method. Must not be `null`.
Returns:
  the newly created IVMInstall instance. Must not return `null`.

### setInitializationData

public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
Initializes the id parameter from the "id" attribute in the configuration markup. Subclasses should not override this method.

Specified by:
  `setInitializationData` in interface `IExecutableExtension`
Parameters:
  `config` - the configuration element used to trigger this execution. It can be queried by the executable extension for specific configuration properties
  `propertyName` - the name of an attribute of the configuration element used on the `createExecutableExtension(String)` call. This argument can be used in the cases where a single configuration element is used to define multiple executable extensions.
  `data` - adapter data in the form of a `String`, a `Hashtable`, or `null`.
See Also:
  - `IExecutableExtension.setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)`

### getId

public String getId()
Description copied from interface: `IVMInstallType`
Returns the globally unique id of this VM type. Clients are responsible for providing a unique id.

Specified by:
  `getId` in interface `IVMInstallType`
Returns:
  the id of this IVMInstallType

### findVMInstallByName

public IVMInstall findVMInstallByName(String name)
Description copied from interface: `IVMInstallType`
Finds the VM with the given name.

Specified by:
  `findVMInstallByName` in interface `IVMInstallType`
Parameters:
  `name` - the VM name
Returns:
  a VM instance, or `null` if not found

### getDefaultJavadocLocation

public URL getDefaultJavadocLocation(File installLocation)
Returns a URL for the default javadoc location of a VM installed at the given home location, or `null` if none. The default implementation returns `null`, subclasses must override as appropriate.

Note, this method would ideally be added to `IVMInstallType`, but it would have been a breaking API change between 2.0 and 2.1. Thus, it has been added to the abstract base class that VM install types should subclass.

Parameters:
  `installLocation` - home location
Returns:
  default javadoc location or `null`
Since:
  2.1

### getDefaultVMArguments

public String getDefaultVMArguments(File installLocation)
Returns a string of default VM arguments for a VM installed at the given home location, or `null` if none. The default implementation returns `null`, subclasses must override as appropriate.

Note, this method would ideally be added to `IVMInstallType`, but it would have been a breaking API change between 2.0 and 3.4. Thus, it has been added to the abstract base class that VM install types should subclass.

Parameters:
  `installLocation` - home location
Returns:
  default VM arguments or `null` if none
Since:
  3.4