final ProcessResult result = new ProcessResultImpl(process, programName, output); final ProcessInteractionApplicator interaction = new ProcessInteractionApplicator(interactionDefinition, programName); final BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); final OutputStream writer = new BufferedOutputStream(process.getOutputStream()); if (!interaction.requiresInputInteraction()) { try { writer.close(); if (interaction.typesInitialText() != null) { writer.flush(); writer.write(interaction.typesInitialText().getBytes()); writer.flush(); output.add(interaction.typesInitialText()); boolean shouldTerminate = interaction.shouldTerminate(sentence); String answer = interaction.repliesTo(sentence); if (interaction.shouldOutput(sentence)) { System.out.println(interaction.transform(sentence)); if (interaction.shouldOutputToErr(sentence)) { System.err.println(interaction.transform(sentence)); if (interaction.shouldOutput(sentence)) { System.out.println(interaction.transform(sentence)); if (interaction.shouldOutputToErr(sentence)) {