package org.eclipse.dltk.launching;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
/**
* Represents a handler that can be used to read/write data to/from a
* <code>Process</code> object that has been created to execute an internal
* script.
*
* @see InternalScriptExecutor
*/
public interface IScriptProcessHandler {
/**
* Handles the <code>Process</code> object
*
* @param process
* process
*
* @param stdin
* data that should be fed to the script via stdin, may be
* <code>null</code>.
*
* @return object containing the results of the script execution
*
* @throws CoreException
* if there was a error handling the process
*/
ScriptResult handle(Process process, char[] stdin) throws CoreException;
/**
* Simple value object to return the results of an internal script execution
*/
public static class ScriptResult {
/** script exit code */
public int exitValue;
/** stderr of script as a single string */
public String stderr;
/** stderr split into individual lines */
public List<String> stderrLines;
/** stdout of script as a single string */
public String stdout;
/** stdout split into individual lines */
public List<String> stdoutLines;
}
}