1 10 package org.mmbase.util.transformers; 11 12 import java.io.Reader ; 13 import java.io.Writer ; 14 15 import org.mmbase.util.logging.*; 16 17 24 25 public class Trimmer extends ReaderTransformer implements CharTransformer { 26 private static final Logger log = Logging.getLoggerInstance(Trimmer.class); 27 28 29 public String transform(String s) { 30 return s.trim(); 31 } 32 33 public Writer transform(Reader r, Writer w) { 34 StringBuffer word = new StringBuffer (); StringBuffer space = new StringBuffer (); 36 try { 37 log.trace("Starting trim"); 38 int c = r.read(); 39 40 while (c != -1 && Character.isWhitespace((char) c)) { 41 c = r.read(); 42 } 43 boolean inWord = true; 44 while (true) { 45 if (Character.isWhitespace((char) c)) { 46 if (inWord) { 47 w.write(word.toString()); 48 word.setLength(0); 49 inWord = false; 50 } 51 space.append((char) c); 52 } else { 53 if (! inWord) { 54 w.write(space.toString()); 55 space.setLength(0); 56 inWord = true; 57 } 58 word.append((char) c); 59 } 60 c = r.read(); 61 if (c == -1) break; 62 } 63 if (inWord) { 65 w.write(word.toString()); 66 } 67 } catch (java.io.IOException e) { 68 log.error(e.toString()); 69 } 70 return w; 71 } 72 73 74 public String toString() { 75 return "TRIMMER"; 76 } 77 } 78 | Popular Tags |