PrintStreamCommandOutput.java
package org.cyclopsgroup.jmxterm.io;
import java.io.PrintStream;
import org.apache.commons.lang3.Validate;
/**
* Implementation of CommandOutput where output is written in given PrintStream objects
*
* @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
*/
public class PrintStreamCommandOutput extends CommandOutput {
private final PrintStream messageOutput;
private final PrintStream resultOutput;
/** Default constructor that uses system standard output and err output */
public PrintStreamCommandOutput() {
this(System.out);
}
/**
* Constructor with given result output and system error as message output
*
* @param output Output for result
*/
public PrintStreamCommandOutput(PrintStream output) {
this(output, System.err);
}
/**
* @param resultOutput PrintStream where result is written to
* @param messageOutput PrintStream where message is written to
*/
public PrintStreamCommandOutput(PrintStream resultOutput, PrintStream messageOutput) {
Validate.notNull(resultOutput, "Result output can't be NULL");
Validate.notNull(messageOutput, "Message output can't be NULL");
this.resultOutput = resultOutput;
this.messageOutput = messageOutput;
}
@Override
public void print(String output) {
resultOutput.print(output);
}
@Override
public void printError(Throwable e) {
e.printStackTrace(messageOutput);
}
@Override
public void printMessage(String message) {
messageOutput.println(message);
}
}