package environment; import java.io.*; public class Environment { private static Environment uniqueInstance = new Environment(); public static Environment getInstance() { return uniqueInstance; } private InputStream input; private PrintStream output; private PrintStream errorOutput; private Runnable terminationFunction; private Runnable errorTerminationFunction; private Environment() {} public void setInput(InputStream input) { this.input = input; } public void setOutput(PrintStream output) { this.output = output; } public void setErrorOutput(PrintStream errorOutput) { this.errorOutput = errorOutput; } public void setTerminationFunction(Runnable terminationFunction) { this.terminationFunction = terminationFunction; } public void setErrorTerminationFunction(Runnable errorTerminationFunction) { this.errorTerminationFunction = errorTerminationFunction; } public InputStream getInput() { return input; } public String getInputName() { return input.toString(); } public PrintStream getOutput() { return output; } public PrintStream getErrorOutput() { return errorOutput; } public void terminateSuccessfully() { terminationFunction.run(); } public void terminateExceptionally() { errorTerminationFunction.run(); } }