# 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