package net.sf.openrocket.logging;
import java.io.IOException;
import java.io.Writer;
public class StackTraceWriter extends Writer {
public static final String PREFIX = " > ";
private final StringBuilder buffer = new StringBuilder();
private boolean addPrefix = true;
@Override
public void write(char[] cbuf, int off, int len) throws IOException {
for (int i=0; i<len; i++) {
if (addPrefix) {
buffer.append(PREFIX);
addPrefix = false;
}
char c = cbuf[off+i];
buffer.append(c);
if (c == '\n')
addPrefix = true;
}
}
@Override
public String toString() {
if (addPrefix && buffer.length() > 0) {
return buffer.substring(0, buffer.length()-1);
} else {
return buffer.toString();
}
}
@Override
public void close() throws IOException {
// no-op
}
@Override
public void flush() throws IOException {
// no-op
}
}