1 18 19 package com.martiansoftware.nailgun; 20 21 import java.io.IOException ; 22 import java.io.PrintStream ; 23 24 35 class ThreadLocalPrintStream extends PrintStream { 36 37 40 private InheritableThreadLocal streams = null; 41 42 private PrintStream defaultPrintStream = null; 43 44 49 public ThreadLocalPrintStream(PrintStream defaultPrintStream) { 50 super(defaultPrintStream); 51 streams = new InheritableThreadLocal (); 52 this.defaultPrintStream = defaultPrintStream; 53 init(null); 54 } 55 56 60 void init(PrintStream streamForCurrentThread) { 61 streams.set(streamForCurrentThread); 62 } 63 64 68 PrintStream getPrintStream() { 69 PrintStream result = (PrintStream ) streams.get(); 70 return ((result == null) ? defaultPrintStream : result); 71 } 72 73 75 78 public boolean checkError() { 79 return (getPrintStream().checkError()); 80 } 81 82 85 public void close() { 86 getPrintStream().close(); 87 } 88 89 92 public void flush() { 93 getPrintStream().flush(); 94 } 95 96 99 public void print(boolean b) { 100 getPrintStream().print(b); 101 } 102 103 106 public void print(char c) { 107 getPrintStream().print(c); 108 } 109 110 113 public void print(char[] s) { 114 getPrintStream().print(s); 115 } 116 117 120 public void print(double d) { 121 getPrintStream().print(d); 122 } 123 124 127 public void print(float f) { 128 getPrintStream().print(f); 129 } 130 131 134 public void print(int i) { 135 getPrintStream().print(i); 136 } 137 138 141 public void print(long l) { 142 getPrintStream().print(l); 143 } 144 145 148 public void print(Object obj) { 149 getPrintStream().print(obj); 150 } 151 152 155 public void print(String s) { 156 getPrintStream().print(s); 157 } 158 159 162 public void println() { 163 getPrintStream().println(); 164 } 165 166 169 public void println(boolean x) { 170 getPrintStream().println(x); 171 } 172 173 176 public void println(char x) { 177 getPrintStream().println(x); 178 } 179 180 183 public void println(char[] x) { 184 getPrintStream().println(x); 185 } 186 187 190 public void println(double x) { 191 getPrintStream().println(x); 192 } 193 194 197 public void println(float x) { 198 getPrintStream().println(x); 199 } 200 201 204 public void println(int x) { 205 getPrintStream().println(x); 206 } 207 208 211 public void println(long x) { 212 getPrintStream().println(x); 213 } 214 215 218 public void println(Object x) { 219 getPrintStream().println(x); 220 } 221 222 225 public void println(String x) { 226 getPrintStream().println(x); 227 } 228 229 232 public void write(byte[] buf, int off, int len) { 233 getPrintStream().write(buf, off, len); 234 } 235 236 239 public void write(int b) { 240 getPrintStream().write(b); 241 } 242 243 245 247 250 public void write(byte[] b) throws IOException { 251 getPrintStream().write(b); 252 } 253 254 256 } 262 | Popular Tags |