Eclipse Platform
Release 3.1

org.eclipse.debug.core.model
Class RuntimeProcess

java.lang.Object
  extended byorg.eclipse.core.runtime.PlatformObject
      extended byorg.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 associatd 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()
          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 launch this process will be parented by
process - underlyig 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()
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 interface: IAdaptable
Returns an object which is an instance of the given class associated with this object. Returns null if no such object can be found.

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), Platform.getAdapterManager()

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.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.