net.rubygrapefruit.platform.internal
Class WrapperProcess

java.lang.Object
  extended by net.rubygrapefruit.platform.internal.WrapperProcess
All Implemented Interfaces:
NativeIntegration, Process

public class WrapperProcess
extends java.lang.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
WrapperProcess(Process process, boolean windows)
           
 
Method Summary
 java.lang.String getEnvironmentVariable(java.lang.String name)
          Get the value of an environment variable.
 int getProcessId()
          Returns the process identifier.
 java.io.File getWorkingDirectory()
          Returns the process' current working directory.
 void setEnvironmentVariable(java.lang.String name, java.lang.String value)
          Sets the value of an environment variable.
 void setWorkingDirectory(java.io.File directory)
          Sets the process' working directory.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WrapperProcess

public WrapperProcess(Process process,
                      boolean windows)
Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.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.

getWorkingDirectory

public java.io.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(java.io.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 java.lang.String getEnvironmentVariable(java.lang.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(java.lang.String name,
                                   java.lang.String value)
                            throws NativeException
Description copied from interface: Process
Sets the value of an environment variable.

Specified by:
setEnvironmentVariable in interface Process
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.