org.eclipse.wst.jsdt.launching

## Class VMStandin

- java.lang.Object
- - org.eclipse.wst.jsdt.launching.AbstractVMInstall
  - - org.eclipse.wst.jsdt.launching.VMStandin

All Implemented Interfaces:
  IVMInstall, IVMInstall2, IVMInstall3

    public class VMStandin
    extends AbstractVMInstall

An implementation of IVMInstall that is used for manipulating VMs without necessarily committing changes.

Instances of this class act like wrappers. All other instances of IVMInstall represent 'real live' VMs that may be used for building or launching. Instances of this class behave like 'temporary' VMs that are not visible and not available for building or launching.

Instances of this class may be constructed as a preliminary step to creating a 'live' VM or as a preliminary step to making changes to a 'real' VM.

When `convertToRealVM` is called, a corresponding 'real' VM is created if one did not previously exist, or the corresponding 'real' VM is updated.

Clients may instantiate this class; it is not intended to be subclassed.

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.

### Constructor Summary

Constructors
Constructor and Description
`VMStandin(IVMInstall realVM)` Construct a `VMStandin` instance based on the specified `IVMInstall`.
`VMStandin(IVMInstall sourceVM, java.lang.String id)` Constructs a copy of the specified VM with the given identifier.
`VMStandin(IVMInstallType type, java.lang.String id)`

### Method Summary

All Methods Instance Methods Concrete Methods
`IVMInstall` `convertToRealVM()` If no corresponding 'real' VM exists, create one and populate it from this standin instance.
`java.lang.String` `getJavaVersion()` Returns a string representing the `java.version` system property of this VM install, or `null` if unknown.

### Methods inherited from class org.eclipse.wst.jsdt.launching.AbstractVMInstall

`abort, equals, getId, getInstallLocation, getJavadocLocation, getLibraryLocations, getName, getVMArgs, getVMArguments, getVMInstallType, getVMRunner, hashCode, setInstallLocation, setJavadocLocation, setLibraryLocations, setName, setNotify, setVMArgs, setVMArguments`

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

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

### Constructor Detail

#### VMStandin

    public VMStandin(IVMInstallType type,
                     java.lang.String id)

#### VMStandin

    public VMStandin(IVMInstall sourceVM,
                     java.lang.String id)

Constructs a copy of the specified VM with the given identifier.

Parameters:
  `sourceVM` -
  `id` -

#### VMStandin

    public VMStandin(IVMInstall realVM)

Construct a `VMStandin` instance based on the specified `IVMInstall`. Changes to this standin will not be reflected in the 'real' VM until `convertToRealVM` is called.

Parameters:
  `realVM` - the 'real' VM from which to construct this standin VM

### Method Detail

#### convertToRealVM

    public IVMInstall convertToRealVM()

If no corresponding 'real' VM exists, create one and populate it from this standin instance. If a corresponding VM exists, update its attributes from this standin instance.

Returns:
  IVMInstall the 'real' corresponding to this standin VM

#### getJavaVersion

    public java.lang.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`
Overrides:
  `getJavaVersion` in class `AbstractVMInstall`
Returns:
  a string representing the `java.version` system property of this VM install, or `null` if unknown.