KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > transformers > StringTransformer


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.util.transformers;
11
12 import java.io.*;
13 import org.mmbase.util.logging.*;
14
15 /**
16  * You need only to implement transform(String) you have the simplest
17  * kind of tranformer (which is not 'streamable'). The name becoming your class name.
18  *
19  * @author Michiel Meeuwissen
20  * @since MMBase-1.7
21  */

22
23 public abstract class StringTransformer implements CharTransformer {
24     private static final Logger log = Logging.getLoggerInstance(StringTransformer.class);
25
26     // javadoc inherited
27
public abstract String JavaDoc transform(String JavaDoc r);
28         
29     // javadoc inherited
30
public final Writer transformBack(Reader r) {
31         return transformBack(r, new StringWriter());
32     }
33
34     // javadoc inherited
35
public final Writer transform(Reader r) {
36         return transform(r, new StringWriter());
37     }
38
39     // javadoc inherited
40
public String JavaDoc transformBack(String JavaDoc r) {
41         throw new UnsupportedOperationException JavaDoc("transformBack is not supported for this transformer");
42     }
43
44     /**
45      * An implemention for tranform(Reader, Writer) based on transform(String).
46      * These functions can be used by extensions to implement transform and transformBack
47      */

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 JavaDoc result = transform(sw.toString());
57             w.write(result);
58         } catch (java.io.IOException JavaDoc 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 JavaDoc result = transformBack(sw.toString());
74             w.write(result);
75         } catch (java.io.IOException JavaDoc e) {
76             log.error(e.toString());
77             log.debug(Logging.stackTrace(e));
78         }
79         return w;
80     }
81 }
82
Popular Tags