org.eclipse.wst.jsdt.launching

## Interface IVMInstallType

All Known Implementing Classes:
  AbstractVMInstallType, StandardVMType

    public interface IVMInstallType

Represents a particular type of VM for which there may be any number of VM installations. An example of a VM type is the standard JRE which might have instances corresponding to different installed versions such as JRE 1.2.2 and JRE 1.3.

This interface is intended to be implemented by clients that contribute to the `"org.eclipse.wst.jsdt.launching.vmType"` extension point.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Method Summary

All Methods Instance Methods Abstract Methods
`IVMInstall` `createVMInstall(java.lang.String id)` Creates a new instance of this VM Install type.
`java.io.File` `detectInstallLocation()` Tries to detect an installed VM that matches this VM install type.
`void` `disposeVMInstall(java.lang.String id)` Remove the VM associated with the given id from the set of VMs managed by this VM type.
`IVMInstall` `findVMInstall(java.lang.String id)` Finds the VM with the given id.
`IVMInstall` `findVMInstallByName(java.lang.String name)` Finds the VM with the given name.
`LibraryLocation[]` `getDefaultLibraryLocations(java.io.File installLocation)` Returns a collection of `LibraryLocation`s that represent the default system libraries of this VM install type, if a VM was installed at the given `installLocation`.
`java.lang.String` `getId()` Returns the globally unique id of this VM type.
`java.lang.String` `getName()` Returns the display name of this VM type.
`IVMInstall[]` `getVMInstalls()` Returns all VM instances managed by this VM type.
`IStatus` `validateInstallLocation(java.io.File installLocation)` Validates the given location of a VM installation.

### Method Detail

#### createVMInstall

    IVMInstall createVMInstall(java.lang.String id)

Creates a new instance of this VM Install type. The newly created IVMInstall is managed by this IVMInstallType.

Parameters:
  `id` - An id String that must be unique within this IVMInstallType.
Returns:
  the newly created VM instance
Throws:
  `java.lang.IllegalArgumentException` - If the id exists already.

#### findVMInstall

    IVMInstall findVMInstall(java.lang.String id)

Finds the VM with the given id.

Parameters:
  `id` - the VM id
Returns:
  a VM instance, or `null` if not found

#### findVMInstallByName

    IVMInstall findVMInstallByName(java.lang.String name)

Finds the VM with the given name.

Parameters:
  `name` - the VM name
Returns:
  a VM instance, or `null` if not found

#### disposeVMInstall

    void disposeVMInstall(java.lang.String id)

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.

Parameters:
  `id` - the id of the VM to be disposed.

#### getVMInstalls

    IVMInstall[] getVMInstalls()

Returns all VM instances managed by this VM type.

Returns:
  the list of VM instances managed by this VM type

#### getName

    java.lang.String getName()

Returns the display name of this VM type.

Returns:
  the name of this IVMInstallType

#### getId

    java.lang.String getId()

Returns the globally unique id of this VM type. Clients are responsible for providing a unique id.

Returns:
  the id of this IVMInstallType

#### validateInstallLocation

    IStatus validateInstallLocation(java.io.File installLocation)

Validates the given location of a VM installation.

For example, an implementation might check whether the VM executable is present.

Parameters:
  `installLocation` - the root directory of a potential installation for this type of VM
Returns:
  a status object describing whether the install location is valid

#### detectInstallLocation

    java.io.File detectInstallLocation()

Tries to detect an installed VM that matches this VM install type. Typically, this method will detect the VM installation the Eclipse platform runs on. Implementers should return `null` if they can't assure that a given vm install matches this IVMInstallType.

Returns:
  The location of an VM installation that can be used with this VM install type, or `null` if unable to locate an installed VM.

#### getDefaultLibraryLocations

    LibraryLocation[] getDefaultLibraryLocations(java.io.File installLocation)

Returns a collection of `LibraryLocation`s that represent the default system libraries of this VM install type, if a VM was installed at the given `installLocation`. The returned `LibraryLocation`s may not exist if the `installLocation` is not a valid install location.

Parameters:
  `installLocation` - home location
Returns:
  default library locations based on the given `installLocation`.
See Also:
  `LibraryLocation`, `validateInstallLocation(File)`