package org.batfish.common; import java.io.IOException; import java.io.PrintStream; import java.util.Locale; import com.google.common.io.ByteStreams; public class CompositePrintStream extends PrintStream { private final PrintStream _ps1; private final PrintStream _ps2; public CompositePrintStream(PrintStream ps1, PrintStream ps2) { super(ByteStreams.nullOutputStream()); _ps1 = ps1; _ps2 = ps2; } @Override public PrintStream append(char c) { _ps1.append(c); _ps2.append(c); return this; } @Override public PrintStream append(CharSequence arg0) { _ps1.append(arg0); _ps2.append(arg0); return this; } @Override public PrintStream append(CharSequence arg0, int arg1, int arg2) { _ps1.append(arg0, arg1, arg2); _ps2.append(arg0, arg1, arg2); return this; } @Override public void close() { _ps1.close(); _ps2.close(); } @Override public void flush() { _ps1.flush(); _ps2.flush(); } @Override public PrintStream format(Locale l, String format, Object... args) { _ps1.format(l, format, args); _ps2.format(l, format, args); return this; } @Override public PrintStream format(String format, Object... args) { _ps1.format(format, args); _ps2.format(format, args); return this; } @Override public void print(boolean b) { _ps1.print(b); _ps2.print(b); } @Override public void print(char c) { _ps1.print(c); _ps2.print(c); } @Override public void print(char[] s) { _ps1.print(s); _ps2.print(s); } @Override public void print(double d) { _ps1.print(d); _ps2.print(d); } @Override public void print(float f) { _ps1.print(f); _ps2.print(f); } @Override public void print(int i) { _ps1.print(i); _ps2.print(i); } @Override public void print(long l) { _ps1.print(l); _ps2.print(l); } @Override public void print(Object obj) { _ps1.print(obj); _ps2.print(obj); } @Override public void print(String s) { _ps1.print(s); _ps2.print(s); } @Override public PrintStream printf(Locale l, String format, Object... args) { _ps1.printf(l, format, args); _ps2.printf(l, format, args); return this; } @Override public PrintStream printf(String format, Object... args) { _ps1.printf(format, args); _ps2.printf(format, args); return this; } @Override public void println() { _ps1.println(); _ps2.println(); } @Override public void println(boolean x) { _ps1.println(x); _ps2.println(x); } @Override public void println(char x) { _ps1.println(x); _ps2.println(x); } @Override public void println(char[] x) { _ps1.println(x); _ps2.println(x); } @Override public void println(double x) { _ps1.println(x); _ps2.println(x); } @Override public void println(float x) { _ps1.println(x); _ps2.println(x); } @Override public void println(int x) { _ps1.println(x); _ps2.println(x); } @Override public void println(long x) { _ps1.println(x); _ps2.println(x); } @Override public void println(Object x) { _ps1.println(x); _ps2.println(x); } @Override public void println(String x) { _ps1.println(x); _ps2.println(x); } @Override public void write(byte[] b) throws IOException { _ps1.write(b); _ps2.write(b); } @Override public void write(byte[] buf, int off, int len) { _ps1.write(buf, off, len); _ps2.write(buf, off, len); } @Override public void write(int b) { _ps1.write(b); _ps2.write(b); } }