release 0.9.6
[debian/openrocket] / src / net / sf / openrocket / logging / StackTraceWriter.java
1 package net.sf.openrocket.logging;
2
3 import java.io.IOException;
4 import java.io.Writer;
5
6 public class StackTraceWriter extends Writer {
7         
8         public static final String PREFIX = "   > ";
9         
10         private final StringBuilder buffer = new StringBuilder();
11         private boolean addPrefix = true;
12
13         @Override
14         public void write(char[] cbuf, int off, int len) throws IOException {
15                 for (int i=0; i<len; i++) {
16                         if (addPrefix) {
17                                 buffer.append(PREFIX);
18                                 addPrefix = false;
19                         }
20                         char c = cbuf[off+i];
21                         buffer.append(c);
22                         if (c == '\n')
23                                 addPrefix = true;
24                 }
25         }
26
27         
28         @Override
29         public String toString() {
30                 if (addPrefix && buffer.length() > 0) {
31                         return buffer.substring(0, buffer.length()-1);
32                 } else {
33                         return buffer.toString();
34                 }
35         }
36
37         
38         @Override
39         public void close() throws IOException {
40                 // no-op
41         }
42
43         @Override
44         public void flush() throws IOException {
45                 // no-op
46         }
47
48 }