# Class VirtualMachineDescriptor

java.lang.Object
com.sun.tools.attach.VirtualMachineDescriptor

public class VirtualMachineDescriptor extends Object
Describes a Java virtual machine.

A `VirtualMachineDescriptor` is a container class used to describe a Java virtual machine. It encapsulates an identifier that identifies a target virtual machine, and a reference to the `AttachProvider` that should be used when attempting to attach to the virtual machine. The identifier is implementation-dependent but is typically the process identifier (or pid) environments where each Java virtual machine runs in its own operating system process.

A `VirtualMachineDescriptor` also has a `displayName`. The display name is typically a human readable string that a tool might display to a user. For example, a tool that shows a list of Java virtual machines running on a system might use the display name rather than the identifier. A `VirtualMachineDescriptor` may be created without a display name. In that case the identifier is used as the display name.

`VirtualMachineDescriptor` instances are typically created by invoking the `VirtualMachine.list()` method. This returns the complete list of descriptors to describe the Java virtual machines known to all installed `attach providers`.

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VirtualMachineDescriptor(AttachProvider provider, String id)`
  Creates a virtual machine descriptor from the given components.
  `VirtualMachineDescriptor(AttachProvider provider, String id, String displayName)`
  Creates a virtual machine descriptor from the given components.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `displayName()`
  Return the display name component of this descriptor.
  `boolean`
  `equals(Object ob)`
  Tests this VirtualMachineDescriptor for equality with another object.
  `int`
  `hashCode()`
  Returns a hash-code value for this VirtualMachineDescriptor.
  `String`
  `id()`
  Return the identifier component of this descriptor.
  `AttachProvider`
  `provider()`
  Return the `AttachProvider` that this descriptor references.
  `String`
  `toString()`
  Returns the string representation of the `VirtualMachineDescriptor`.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### VirtualMachineDescriptor

    public VirtualMachineDescriptor(AttachProvider provider, String id, String displayName)
    Creates a virtual machine descriptor from the given components.
    Parameters:
      `provider` - The AttachProvider to attach to the Java virtual machine.
      `id` - The virtual machine identifier.
      `displayName` - The display name.
    Throws:
      `NullPointerException` - If any of the arguments are `null`

  - ### VirtualMachineDescriptor

    public VirtualMachineDescriptor(AttachProvider provider, String id)
    Creates a virtual machine descriptor from the given components.

    This convenience constructor works as if by invoking the three-argument constructor as follows:

    > `new `VirtualMachineDescriptor`(provider, id, id);`

    That is, it creates a virtual machine descriptor such that the display name is the same as the virtual machine identifier.

    Parameters:
      `provider` - The AttachProvider to attach to the Java virtual machine.
      `id` - The virtual machine identifier.
    Throws:
      `NullPointerException` - If `provider` or `id` is `null`.

- ## Method Details

  - ### provider

    public AttachProvider provider()
    Return the `AttachProvider` that this descriptor references.
    Returns:
      The `AttachProvider` that this descriptor references.

  - ### id

    public String id()
    Return the identifier component of this descriptor.
    Returns:
      The identifier component of this descriptor.

  - ### displayName

    public String displayName()
    Return the display name component of this descriptor.
    Returns:
      The display name component of this descriptor.

  - ### hashCode

    public int hashCode()
    Returns a hash-code value for this VirtualMachineDescriptor. The hash code is based upon the descriptor's components, and satisfies the general contract of the `Object.hashCode` method.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      A hash-code value for this descriptor.
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(Object)`

  - ### equals

    public boolean equals(Object ob)
    Tests this VirtualMachineDescriptor for equality with another object.

    If the given object is not a VirtualMachineDescriptor then this method returns `false`. For two VirtualMachineDescriptors to be considered equal requires that they both reference the same provider, and their `identifiers` are equal.

    This method satisfies the general contract of the `Object.equals` method.

    Overrides:
      `equals` in class `Object`
    Parameters:
      `ob` - The object to which this object is to be compared
    Returns:
      `true` if, and only if, the given object is a VirtualMachineDescriptor that is equal to this VirtualMachineDescriptor.
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### toString

    public String toString()
    Returns the string representation of the `VirtualMachineDescriptor`.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of the object