package com.gorillalogic.monkeytalk.utils.exec; public class ExecResult { public static final ExecResult OK = new ExecResult(ExecStatus.OK); public static final ExecResult ERROR = new ExecResult(ExecStatus.ERROR); private final ExecStatus status; private final String message; private int exitValue; private final String stdout; private final String stderr; private final boolean timedOut; public ExecResult(ExecStatus status) { this(status, -1, null, null, false); } public ExecResult(ExecStatus status, String message) { this(status, -1, message, null, false); } public ExecResult(ExecStatus status, int exitValue, String stdout, String stderr) { this(status, exitValue, stdout, stderr, false); } public ExecResult(ExecStatus status, int exitValue, String stdout, String stderr, boolean timedOut) { this.status = status; this.message = stdout; this.exitValue = exitValue; this.stdout = stdout; this.stderr = stderr; this.timedOut = timedOut; } public ExecStatus getStatus() { return status; } public String getMessage() { return message; } public boolean timedOut() { return timedOut; } public String getStderr() { return stderr; } public String getStdout() { return stdout; } public int getExitValue() { return exitValue; } @Override public String toString() { return "ExecResult (status=" + this.status + " message=" + this.message + " exitValue=" + (this.exitValue != -1 ? Integer.toString(this.exitValue) : "?") + " stdout=" + (stdout == null ? "not captured" : "(" + stdout.length() + " chars)") + " stderr=" + (stderr == null ? "not captured" : "(" + stderr.length() + " chars)") + " timedOut=" + timedOut + ")"; } }