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 Details

    • 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 Details

    • 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:
    • 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 LibraryLocations 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, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.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:
      org.eclipse.core.runtime.CoreException - if an exception occurs evaluating the properties
    • abort

      protected void abort(String message, Throwable exception, int code) throws org.eclipse.core.runtime.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:
      org.eclipse.core.runtime.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