org.eclipse.debug.core

## Interface IProcessFactory

    public interface IProcessFactory

A process factory is used to override default process (`IProcess`) creation by the debug plug-in, and can be contributed via plug-in XML. When a new process is created via `DebugPlugin.newProcess(..)`, the launch configuration associated with the specified launch is consulted for a process factory attribute (`DebugPlugin.ATTR_PROCESS_FACTORY_ID`). If present, the associated process factory is consulted to create a process for the launch. If not present a default process implementation is created and returned by the debug plug-in.

Following is example plug-in XML that contributes a process factory.

     <extension point="org.eclipse.debug.core.processFactories">
       <processFactory
               id="com.example.ExampleIdentifier"
               class="com.example.ExampleProcessFactory">
       </processFactory>
     </extension>

The attributes are specified as follows:

- id - a unique identifier for this extension point
- class - the fully qualified name of a class the implements `IProcessFactory`

Clients contributing a process factory are intended to implement this interface.

Since:
  3.0

### Method Summary

All Methods Instance Methods Abstract Methods
`IProcess` `newProcess(ILaunch launch, Process process, String label, Map<String,String> attributes)` Creates and returns a new process representing the given `java.lang.Process`.

### Method Detail

#### newProcess

    IProcess newProcess(ILaunch launch,
                        Process process,
                        String label,
                        Map<String,String> attributes)

Creates and returns a new process representing the given `java.lang.Process`. A streams proxy is created for the I/O streams in the system process. The process is added to the given launch, and the process is initialized with the given attribute map.

Parameters:
  `launch` - the launch the process is contained in
  `process` - the system process to wrap
  `label` - the label assigned to the process
  `attributes` - initial values for the attribute map
Returns:
  the process
See Also:
  `IProcess`