1 10 package org.mmbase.util.transformers; 11 12 import java.io.*; 13 import org.mmbase.util.logging.*; 14 15 22 23 public abstract class StringTransformer implements CharTransformer { 24 private static final Logger log = Logging.getLoggerInstance(StringTransformer.class); 25 26 public abstract String transform(String r); 28 29 public final Writer transformBack(Reader r) { 31 return transformBack(r, new StringWriter()); 32 } 33 34 public final Writer transform(Reader r) { 36 return transform(r, new StringWriter()); 37 } 38 39 public String transformBack(String r) { 41 throw new UnsupportedOperationException ("transformBack is not supported for this transformer"); 42 } 43 44 48 public Writer transform(Reader r, Writer w) { 49 try { 50 StringWriter sw = new StringWriter(); 51 while (true) { 52 int c = r.read(); 53 if (c == -1) break; 54 sw.write(c); 55 } 56 String result = transform(sw.toString()); 57 w.write(result); 58 } catch (java.io.IOException e) { 59 log.error(e.toString()); 60 log.debug(Logging.stackTrace(e)); 61 } 62 return w; 63 } 64 65 public Writer transformBack(Reader r, Writer w) { 66 try { 67 StringWriter sw = new StringWriter(); 68 while (true) { 69 int c = r.read(); 70 if (c == -1) break; 71 sw.write(c); 72 } 73 String result = transformBack(sw.toString()); 74 w.write(result); 75 } catch (java.io.IOException e) { 76 log.error(e.toString()); 77 log.debug(Logging.stackTrace(e)); 78 } 79 return w; 80 } 81 } 82 | Popular Tags |