org.eclipse.jdt.launching

## Class AbstractVMInstall

- java.lang.Object
- - org.eclipse.jdt.launching.AbstractVMInstall

All Implemented Interfaces:
  IVMInstall, IVMInstall2, IVMInstall3

Direct Known Subclasses:
  VMStandin

    public abstract class AbstractVMInstall
    extends Object
    implements IVMInstall, IVMInstall2, IVMInstall3

Abstract implementation of a VM install.

Clients implementing VM installs must subclass this class.

### Constructor Summary

Constructors
Constructor and Description
`AbstractVMInstall(IVMInstallType type, String id)` Constructs a new VM install.

### Method Summary

All Methods Instance Methods Concrete 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.
`boolean` `equals(Object object)`
`Map<String,String>` `evaluateSystemProperties(String[] properties, IProgressMonitor monitor)` Evaluates the specified system properties in this VM, returning the result as a map of property names to property values.
`String` `getAttribute(String key)` Returns a VM specific attribute associated with the given key or `null` if none.
`Map<String,String>` `getAttributes()` Returns a map of VM specific attributes stored with this VM install.
`String` `getId()` Returns the id for this VM.
`File` `getInstallLocation()` Returns the root directory of the install location of this VM.
`URL` `getJavadocLocation()` Returns the Javadoc location associated with this VM install.
`String` `getJavaVersion()` Returns a string representing the `java.version` system property of this VM install, or `null` if unknown.
`LibraryLocation[]` `getLibraryLocations()` Returns the library locations of this IVMInstall.
`String` `getName()` Returns the display name of this VM.
`String` `getVMArgs()` Returns VM arguments to be used with this vm install whenever this VM is launched as a raw string, or `null` if none.
`String[]` `getVMArguments()` Returns VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none.
`IVMInstallType` `getVMInstallType()` Returns the VM type of this VM.
`IVMRunner` `getVMRunner(String mode)` Returns a VM runner that runs this installed VM in the given mode.
`int` `hashCode()`
`void` `setAttribute(String key, String value)` Sets a VM specific attribute.
`void` `setInstallLocation(File installLocation)` Sets the root directory of the install location of this VM.
`void` `setJavadocLocation(URL url)` Sets the Javadoc location associated with this VM install.
`void` `setLibraryLocations(LibraryLocation[] locations)` Sets the library locations of this IVMInstall.
`void` `setName(String name)` Sets the display name of this VM.
`protected void` `setNotify(boolean notify)` Whether this VM should fire property change notifications.
`void` `setVMArgs(String vmArgs)` Sets VM arguments to be used with this vm install whenever this VM is launched as a raw string, possibly `null`.
`void` `setVMArguments(String[] vmArgs)` Sets VM arguments to be used with this vm install whenever this VM is launched, possibly `null`.

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

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

### Constructor Detail

#### AbstractVMInstall

    public AbstractVMInstall(IVMInstallType type,
                             String id)

Constructs a new VM install.

Parameters:
  `type` - The type of this VM install. Must not be `null`
  `id` - The unique identifier of this VM instance Must not be `null`.
Throws:
  `IllegalArgumentException` - if any of the required parameters are `null`.

### Method Detail

#### getId

    public String getId()

Description copied from interface: `IVMInstall`
Returns the id for this VM. VM IDs are unique within the VMs of a given VM type. The VM id is not intended to be presented to users.

Specified by:
  `getId` in interface `IVMInstall`
Returns:
  the VM identifier. Must not return `null`.

#### getName

    public String getName()

Description copied from interface: `IVMInstall`
Returns the display name of this VM. The VM name is intended to be presented to users.

Specified by:
  `getName` in interface `IVMInstall`
Returns:
  the display name of this VM. May return `null`.

#### setName

    public void setName(String name)

Description copied from interface: `IVMInstall`
Sets the display name of this VM. The VM name is intended to be presented to users.

Specified by:
  `setName` in interface `IVMInstall`
Parameters:
  `name` - the display name of this VM

#### getInstallLocation

    public File getInstallLocation()

Description copied from interface: `IVMInstall`
Returns the root directory of the install location of this VM.

Specified by:
  `getInstallLocation` in interface `IVMInstall`
Returns:
  the root directory of this VM installation. May return `null`.

#### setInstallLocation

    public void setInstallLocation(File installLocation)

Description copied from interface: `IVMInstall`
Sets the root directory of the install location of this VM.

Specified by:
  `setInstallLocation` in interface `IVMInstall`
Parameters:
  `installLocation` - the root directory of this VM installation

#### getVMInstallType

    public IVMInstallType getVMInstallType()

Description copied from interface: `IVMInstall`
Returns the VM type of this VM.

Specified by:
  `getVMInstallType` in interface `IVMInstall`
Returns:
  the VM type that created this IVMInstall instance

#### getVMRunner

    public IVMRunner getVMRunner(String mode)

Description copied from interface: `IVMInstall`
Returns a VM runner that runs this installed VM in the given mode.

Specified by:
  `getVMRunner` in interface `IVMInstall`
Parameters:
  `mode` - the mode the VM should be launched in; one of the constants declared in `org.eclipse.debug.core.ILaunchManager`
Returns:
  a VMRunner for a given mode May return `null` if the given mode is not supported by this VM.
See Also:
  `ILaunchManager`

#### getLibraryLocations

    public LibraryLocation[] getLibraryLocations()

Description copied from interface: `IVMInstall`
Returns the library locations of this IVMInstall. Generally, clients should use `JavaRuntime.getLibraryLocations(IVMInstall)` to determine the libraries associated with this VM install.

Specified by:
  `getLibraryLocations` in interface `IVMInstall`
Returns:
  The library locations of this IVMInstall. Returns `null` to indicate that this VM install uses the default library locations associated with this VM's install type.
See Also:
  `IVMInstall.setLibraryLocations(LibraryLocation[])`

#### setLibraryLocations

    public void setLibraryLocations(LibraryLocation[] locations)

Description copied from interface: `IVMInstall`
Sets the library locations of this IVMInstall.

Specified by:
  `setLibraryLocations` in interface `IVMInstall`
Parameters:
  `locations` - The `LibraryLocation`s to associate with this IVMInstall. May be `null` to indicate that this VM install uses the default library locations associated with this VM's install type.

#### getJavadocLocation

    public URL getJavadocLocation()

Description copied from interface: `IVMInstall`
Returns the Javadoc location associated with this VM install.

Specified by:
  `getJavadocLocation` in interface `IVMInstall`
Returns:
  a url pointing to the Javadoc location associated with this VM install, or `null` if none

#### setJavadocLocation

    public void setJavadocLocation(URL url)

Description copied from interface: `IVMInstall`
Sets the Javadoc location associated with this VM install.

Specified by:
  `setJavadocLocation` in interface `IVMInstall`
Parameters:
  `url` - a url pointing to the Javadoc location associated with this VM install

#### setNotify

    protected void setNotify(boolean notify)

Whether this VM should fire property change notifications.

Parameters:
  `notify` - if this VM should fire property change notifications.
Since:
  2.1

#### equals

    public boolean equals(Object object)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### getVMArguments

    public String[] getVMArguments()

Description copied from interface: `IVMInstall`
Returns VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none.

Specified by:
  `getVMArguments` in interface `IVMInstall`
Returns:
  VM arguments to be used with this vm install whenever this VM is launched as they should be passed to the command line, or `null` if none

#### setVMArguments

    public void setVMArguments(String[] vmArgs)

Description copied from interface: `IVMInstall`
Sets VM arguments to be used with this vm install whenever this VM is launched, possibly `null`. This is equivalent to `setVMArgs(String)` with whitespace character delimited arguments.

Specified by:
  `setVMArguments` in interface `IVMInstall`
Parameters:
  `vmArgs` - VM arguments to be used with this vm install whenever this VM is launched, possibly `null`

#### getVMArgs

    public String getVMArgs()

Description copied from interface: `IVMInstall2`
Returns VM arguments to be used with this vm install whenever this VM is launched as a raw string, or `null` if none.

Specified by:
  `getVMArgs` in interface `IVMInstall2`
Returns:
  VM arguments to be used with this vm install whenever this VM is launched as a raw string, or `null` if none

#### setVMArgs

    public void setVMArgs(String vmArgs)

Description copied from interface: `IVMInstall2`
Sets VM arguments to be used with this vm install whenever this VM is launched as a raw string, possibly `null`.

Specified by:
  `setVMArgs` in interface `IVMInstall2`
Parameters:
  `vmArgs` - VM arguments to be used with this vm install whenever this VM is launched as a raw string, possibly `null`

#### getJavaVersion

    public String getJavaVersion()

Description copied from interface: `IVMInstall2`
Returns a string representing the `java.version` system property of this VM install, or `null` if unknown.

Specified by:
  `getJavaVersion` in interface `IVMInstall2`
Returns:
  a string representing the `java.version` system property of this VM install, or `null` if unknown.

#### evaluateSystemProperties

    public Map<String,String> evaluateSystemProperties(String[] properties,
                                                       IProgressMonitor monitor)
                                                throws CoreException

Description copied from interface: `IVMInstall3`
Evaluates the specified system properties in this VM, returning the result as a map of property names to property values.

Specified by:
  `evaluateSystemProperties` in interface `IVMInstall3`
Parameters:
  `properties` - the property names to evaluate, for example `{"user.home"}`
  `monitor` - progress monitor or `null`
Returns:
  map of system property names to associated property values
Throws:
  `CoreException` - if an exception occurs evaluating the properties

#### 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
Since:
  3.2

#### setAttribute

    public void setAttribute(String key,
                             String value)

Sets a VM specific attribute. Attributes are persisted and restored with VM installs. Specifying a value of `null` as a value removes the attribute. Change notification is provided to `IVMInstallChangedListener` for VM attributes.

Parameters:
  `key` - attribute key, cannot be `null`
  `value` - attribute value or `null` to remove the attribute
Since:
  3.4

#### getAttribute

    public String getAttribute(String key)

Returns a VM specific attribute associated with the given key or `null` if none.

Parameters:
  `key` - attribute key, cannot be `null`
Returns:
  attribute value, or `null` if none
Since:
  3.4

#### getAttributes

    public Map<String,String> getAttributes()

Returns a map of VM specific attributes stored with this VM install. Keys and values are strings. Modifying the map does not modify the attributes associated with this VM install.

Returns:
  map of VM attributes
Since:
  3.4