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
`protected` `AbstractVMInstallType()` Constructs a new VM install type.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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 Detail

#### AbstractVMInstallType

    protected AbstractVMInstallType()

Constructs a new VM install type.

### Method Detail

#### 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