Package 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 anIProcess
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 callDebugPlugin.newProcess(...)
, which can delegate to anIProcessFactory
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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.<T> T
getAdapter(Class<T> 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, ornull
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 invoid
terminate()
Causes this element to terminate, generating aTERMINATE
event.protected void
terminated()
Notification that the system process associated with this process has terminated.
-
-
-
Constructor Detail
-
RuntimeProcess
public RuntimeProcess(ILaunch launch, Process process, String name, Map<String,String> 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 processprocess
- underlying system processname
- the label used for this processattributes
- map of attributes used to initialize the attributes of this process, ornull
if none
-
-
Method Detail
-
canTerminate
public boolean canTerminate()
Description copied from interface:ITerminate
Returns whether this element can be terminated.- Specified by:
canTerminate
in interfaceITerminate
- 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 interfaceIProcess
- 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 interfaceIProcess
- 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 interfaceITerminate
- 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 aTERMINATE
event. Implementations may be blocking or non-blocking.- Specified by:
terminate
in interfaceITerminate
- 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, ornull
if not supported.- Specified by:
getStreamsProxy
in interfaceIProcess
- 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 interfaceIProcess
- Parameters:
key
- the attribute keyvalue
- 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 interfaceIProcess
- Parameters:
key
- the attribute key- Returns:
- value the String attribute value, or
null
if undefined - See Also:
IProcess.getAttribute(String)
-
getAdapter
public <T> T getAdapter(Class<T> adapter)
Description copied from class:PlatformObject
Returns an object which is an instance of the given class associated with this object. Returnsnull
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; roughlyPlatform.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 interfaceIAdaptable
- Overrides:
getAdapter
in classPlatformObject
- Type Parameters:
T
- the class type- 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 interfaceIProcess
- Returns:
- the exit value of this process
- Throws:
DebugException
- if this process has not yet terminated- See Also:
IProcess.getExitValue()
-
-