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 anIProcessthat 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
IProcessshould subclass this class. Generally clients should not instantiate this class directly, but should instead callDebugPlugin.newProcess(...), which can delegate to anIProcessFactoryif 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 booleancanTerminate()Returns whether this element can be terminated.protected IStreamsProxycreateStreamsProxy()Creates and returns the streams proxy associated with this process.protected voidfireChangeEvent()Fires a change event.protected voidfireCreationEvent()Fires a creation event.protected voidfireEvent(DebugEvent event)Fires the given debug event.protected voidfireTerminateEvent()Fires a terminate event.<T> TgetAdapter(Class<T> adapter)Returns an object which is an instance of the given class associated with this object.StringgetAttribute(String key)Returns the value of a client defined attribute.intgetExitValue()Returns the exit value of this process.StringgetLabel()Returns a human-readable label for this process.ILaunchgetLaunch()Returns the launch this element originated from.IStreamsProxygetStreamsProxy()Returns a proxy to the standard input, output, and error streams for this process, ornullif not supported.protected ProcessgetSystemProcess()Returns the underlying system process associated with this process.booleanisTerminated()Returns whether this element is terminated.voidsetAttribute(String key, String value)Sets the value of a client defined attribute.protected voidsetLaunch(ILaunch launch)Sets the launch this process is contained invoidterminate()Causes this element to terminate, generating aTERMINATEevent.protected voidterminated()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, ornullif none
-
-
Method Detail
-
canTerminate
public boolean canTerminate()
Description copied from interface:ITerminateReturns whether this element can be terminated.- Specified by:
canTerminatein interfaceITerminate- Returns:
- whether this element can be terminated
- See Also:
ITerminate.canTerminate()
-
getLabel
public String getLabel()
Description copied from interface:IProcessReturns a human-readable label for this process.- Specified by:
getLabelin 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:IProcessReturns the launch this element originated from.- Specified by:
getLaunchin 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:ITerminateReturns whether this element is terminated.- Specified by:
isTerminatedin interfaceITerminate- Returns:
- whether this element is terminated
- See Also:
ITerminate.isTerminated()
-
terminate
public void terminate() throws DebugExceptionDescription copied from interface:ITerminateCauses this element to terminate, generating aTERMINATEevent. Implementations may be blocking or non-blocking.- Specified by:
terminatein 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:IProcessReturns a proxy to the standard input, output, and error streams for this process, ornullif not supported.- Specified by:
getStreamsProxyin interfaceIProcess- Returns:
- a streams proxy, or
nullif 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:IProcessSets the value of a client defined attribute.- Specified by:
setAttributein 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:IProcessReturns the value of a client defined attribute.- Specified by:
getAttributein interfaceIProcess- Parameters:
key- the attribute key- Returns:
- value the String attribute value, or
nullif undefined - See Also:
IProcess.getAttribute(String)
-
getAdapter
public <T> T getAdapter(Class<T> adapter)
Description copied from class:PlatformObjectReturns an object which is an instance of the given class associated with this object. Returnsnullif no such object can be found.This implementation of the method declared by
IAdaptablepasses 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:
getAdapterin interfaceIAdaptable- Overrides:
getAdapterin 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 DebugExceptionDescription copied from interface:IProcessReturns the exit value of this process. Conventionally, 0 indicates normal termination.- Specified by:
getExitValuein interfaceIProcess- Returns:
- the exit value of this process
- Throws:
DebugException- if this process has not yet terminated- See Also:
IProcess.getExitValue()
-
-