Package net.rubygrapefruit.platform.internal

# Class WrapperProcess

java.lang.Object
net.rubygrapefruit.platform.internal.WrapperProcess

All Implemented Interfaces:
  `NativeIntegration`, `Process`

public class WrapperProcess extends Object implements Process
A `Process` implementation that wraps another to add thread-safety and to update the JVM's internal view of various process properties.

## Constructor Summary

Constructors
Constructor
Description
`WrapperProcess(Process process, boolean windows)`

## Method Summary

Modifier and Type
Method
Description
`void`
`detach()`
Detaches this process from the parent to ignore ctrl-c.
`String`
`getEnvironmentVariable(String name)`
Get the value of an environment variable.
`int`
`getProcessId()`
Returns the process identifier.
`File`
`getWorkingDirectory()`
Returns the process' current working directory.
`void`
`setEnvironmentVariable(String name, String value)`
Sets the value of an environment variable.
`void`
`setWorkingDirectory(File directory)`
Sets the process' working directory.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### WrapperProcess

public WrapperProcess(Process process, boolean windows)

## Method Details

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### getProcessId

public int getProcessId() throws NativeException
Description copied from interface: `Process`
Returns the process identifier.

Specified by:
  `getProcessId` in interface `Process`
Throws:
  `NativeException` - On failure.

### detach

public void detach() throws NativeException
Description copied from interface: `Process`
Detaches this process from the parent to ignore ctrl-c.

Specified by:
  `detach` in interface `Process`
Throws:
  `NativeException` - On failure.

### getWorkingDirectory

public File getWorkingDirectory() throws NativeException
Description copied from interface: `Process`
Returns the process' current working directory.

Specified by:
  `getWorkingDirectory` in interface `Process`
Throws:
  `NativeException` - On failure.

### setWorkingDirectory

public void setWorkingDirectory(File directory) throws NativeException
Description copied from interface: `Process`
Sets the process' working directory.

Specified by:
  `setWorkingDirectory` in interface `Process`
Throws:
  `NativeException` - On failure.

### getEnvironmentVariable

public String getEnvironmentVariable(String name) throws NativeException
Description copied from interface: `Process`
Get the value of an environment variable.

Specified by:
  `getEnvironmentVariable` in interface `Process`
Returns:
  The value or null if no such environment variable. Also returns null for an environment variable whose value is an empty string.
Throws:
  `NativeException` - On failure.

### setEnvironmentVariable

public void setEnvironmentVariable(String name, String value) throws NativeException
Description copied from interface: `Process`
Sets the value of an environment variable.

Specified by:
  `setEnvironmentVariable` in interface `Process`
Parameters:
  `value` - the new value. Use null or an empty string to remove the environment variable. Note that on some platforms it is not possible to remove the environment variable safely. On such platforms, the value is set to an empty string instead.
Throws:
  `NativeException` - On failure.