Package org.eclipse.jdt.launching

## Class VMStandin

- java.lang.Object
- - org.eclipse.jdt.launching.AbstractVMInstall
  - - org.eclipse.jdt.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.

Since:
  2.1
Restriction:
  This class is not intended to be sub-classed by clients.

### Constructor Summary

Constructors
`VMStandin​(IVMInstall realVM)` Construct a `VMStandin` instance based on the specified `IVMInstall`.
`VMStandin​(IVMInstall sourceVM, String id)` Constructs a copy of the specified VM with the given identifier.
`VMStandin​(IVMInstallType type, 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 stand-in instance.
`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.jdt.launching.AbstractVMInstall

`abort, equals, evaluateSystemProperties, getAttribute, getAttributes, getId, getInstallLocation, getJavadocLocation, getLibraryLocations, getName, getVMArgs, getVMArguments, getVMInstallType, getVMRunner, hashCode, setAttribute, 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,
                     String id)

#### VMStandin

    public VMStandin​(IVMInstall sourceVM,
                     String id)

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

Parameters:
  `sourceVM` - the original VM
  `id` - the new ID to use
Since:
  3.2

#### VMStandin

    public VMStandin​(IVMInstall realVM)

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

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

### Method Detail

#### convertToRealVM

    public IVMInstall convertToRealVM()

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

Returns:
  IVMInstall the 'real' corresponding to this stand-in VM

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