Eclipse Platform Release 3.7

## org.eclipse.debug.core.model
Class RuntimeProcess

    java.lang.Object
      org.eclipse.core.runtime.PlatformObject
          org.eclipse.debug.core.model.RuntimeProcess

All Implemented Interfaces:
  IAdaptable, IProcess, ITerminate

    public class RuntimeProcess

extends PlatformObject
implements IProcess

Standard implementation of an `IProcess` that wrappers a system process (`java.lang.Process`).

Clients may subclass this class. Clients that need to replace the implementation of a streams proxy associated with an `IProcess` should subclass this class. Generally clients should not instantiate this class directly, but should instead call `DebugPlugin.newProcess(...)`, which can delegate to an `IProcessFactory` if one is referenced by the associated launch configuration.

Since:
  3.0
See Also:
  `IProcess`, `IProcessFactory`

Field Summary

Fields inherited from interface org.eclipse.debug.core.model.IProcess
`ATTR_CMDLINE, ATTR_PROCESS_LABEL, ATTR_PROCESS_TYPE`

Constructor Summary
`RuntimeProcess(ILaunch launch, Process process, String name, Map attributes)` Constructs a RuntimeProcess on the given system process with the given name, adding this process to the given launch.

Method Summary
`boolean` `canTerminate()` Returns whether this element can be terminated.
`protected IStreamsProxy` `createStreamsProxy()` Creates and returns the streams proxy associated with this process.
`protected void` `fireChangeEvent()` Fires a change event.
`protected void` `fireCreationEvent()` Fires a creation event.
`protected void` `fireEvent(DebugEvent event)` Fires the given debug event.
`protected void` `fireTerminateEvent()` Fires a terminate event.
`Object` `getAdapter(Class adapter)` Returns an object which is an instance of the given class associated with this object.
`String` `getAttribute(String key)` Returns the value of a client defined attribute.
`int` `getExitValue()` Returns the exit value of this process.
`String` `getLabel()` Returns a human-readable label for this process.
`ILaunch` `getLaunch()` Returns the launch this element originated from.
`IStreamsProxy` `getStreamsProxy()` Returns a proxy to the standard input, output, and error streams for this process, or `null` if not supported.
`protected Process` `getSystemProcess()` Returns the underlying system process associated with this process.
`boolean` `isTerminated()` Returns whether this element is terminated.
`void` `setAttribute(String key, String value)` Sets the value of a client defined attribute.
`protected void` `setLaunch(ILaunch launch)` Sets the launch this process is contained in
`void` `terminate()` Causes this element to terminate, generating a `TERMINATE` event.
`protected void` `terminated()` Notification that the system process associated with this process has terminated.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RuntimeProcess

    public RuntimeProcess(ILaunch launch,
                          Process process,
                          String name,
                          Map attributes)

  Constructs a RuntimeProcess on the given system process with the given name, adding this process to the given launch.

  Parameters:
    `launch` - the parent launch of this process
    `process` - underlying system process
    `name` - the label used for this process
    `attributes` - map of attributes used to initialize the attributes of this process, or `null` if none

Method Detail

### canTerminate

    public boolean canTerminate()

  Description copied from interface: `ITerminate`
  Returns whether this element can be terminated.

  Specified by:
    `canTerminate` in interface `ITerminate`
  Returns:
    whether this element can be terminated
  See Also:
    `ITerminate.canTerminate()`

### getLabel

    public String getLabel()

  Description copied from interface: `IProcess`
  Returns a human-readable label for this process.

  Specified by:
    `getLabel` in interface `IProcess`
  Returns:
    a label for this process
  See Also:
    `IProcess.getLabel()`

### setLaunch

    protected void setLaunch(ILaunch launch)

  Sets the launch this process is contained in

  Parameters:
    `launch` - the launch this process is contained in

### getLaunch

    public ILaunch getLaunch()

  Description copied from interface: `IProcess`
  Returns the launch this element originated from.

  Specified by:
    `getLaunch` in interface `IProcess`
  Returns:
    the launch this process is contained in
  See Also:
    `IProcess.getLaunch()`

### getSystemProcess

    protected Process getSystemProcess()

  Returns the underlying system process associated with this process.

  Returns:
    system process

### isTerminated

    public boolean isTerminated()

  Description copied from interface: `ITerminate`
  Returns whether this element is terminated.

  Specified by:
    `isTerminated` in interface `ITerminate`
  Returns:
    whether this element is terminated
  See Also:
    `ITerminate.isTerminated()`

### terminate

    public void terminate()
                   throws DebugException

  Description copied from interface: `ITerminate`
  Causes this element to terminate, generating a `TERMINATE` event. Implementations may be blocking or non-blocking.

  Specified by:
    `terminate` in interface `ITerminate`
  Throws:
    `DebugException` - on failure. Reasons include:
    - TARGET_REQUEST_FAILED - The request failed in the target
    - NOT_SUPPORTED - The capability is not supported by the target
  See Also:
    `ITerminate.terminate()`

### terminated

    protected void terminated()

  Notification that the system process associated with this process has terminated.

### getStreamsProxy

    public IStreamsProxy getStreamsProxy()

  Description copied from interface: `IProcess`
  Returns a proxy to the standard input, output, and error streams for this process, or `null` if not supported.

  Specified by:
    `getStreamsProxy` in interface `IProcess`
  Returns:
    a streams proxy, or `null` if not supported
  See Also:
    `IProcess.getStreamsProxy()`

### createStreamsProxy

    protected IStreamsProxy createStreamsProxy()

  Creates and returns the streams proxy associated with this process.

  Returns:
    streams proxy

### fireCreationEvent

    protected void fireCreationEvent()

  Fires a creation event.

### fireEvent

    protected void fireEvent(DebugEvent event)

  Fires the given debug event.

  Parameters:
    `event` - debug event to fire

### fireTerminateEvent

    protected void fireTerminateEvent()

  Fires a terminate event.

### fireChangeEvent

    protected void fireChangeEvent()

  Fires a change event.

### setAttribute

    public void setAttribute(String key,
                             String value)

  Description copied from interface: `IProcess`
  Sets the value of a client defined attribute.

  Specified by:
    `setAttribute` in interface `IProcess`
  Parameters:
    `key` - the attribute key
    `value` - the attribute value
  See Also:
    `IProcess.setAttribute(String, String)`

### getAttribute

    public String getAttribute(String key)

  Description copied from interface: `IProcess`
  Returns the value of a client defined attribute.

  Specified by:
    `getAttribute` in interface `IProcess`
  Parameters:
    `key` - the attribute key
  Returns:
    value the String attribute value, or `null` if undefined
  See Also:
    `IProcess.getAttribute(String)`

### getAdapter

    public Object getAdapter(Class adapter)

  Description copied from class: `PlatformObject`
  Returns an object which is an instance of the given class associated with this object. Returns `null` if no such object can be found.

  This implementation of the method declared by `IAdaptable` passes the request along to the platform's adapter manager; roughly `Platform.getAdapterManager().getAdapter(this, adapter)`. Subclasses may override this method (however, if they do so, they should invoke the method on their superclass to ensure that the Platform's adapter manager is consulted).

  Specified by:
    `getAdapter` in interface `IAdaptable`
  Overrides:
    `getAdapter` in class `PlatformObject`
  Parameters:
    `adapter` - the class to adapt to
  Returns:
    the adapted object or `null`
  See Also:
    `IAdaptable.getAdapter(Class)`

### getExitValue

    public int getExitValue()
                     throws DebugException

  Description copied from interface: `IProcess`
  Returns the exit value of this process. Conventionally, 0 indicates normal termination.

  Specified by:
    `getExitValue` in interface `IProcess`
  Returns:
    the exit value of this process
  Throws:
    `DebugException` - if this process has not yet terminated
  See Also:
    `IProcess.getExitValue()`

Eclipse Platform Release 3.7

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2011. All rights reserved.