KickJava   Java API By Example, From Geeks To Geeks.

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


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  * A Runnable implementation to perform a CharTransform between a Reader and a Writer. This is used
17  * in {@link ChainedCharTransformer}, {@link TransformingWriter} and {@link TransformingReader},
18  * because those need a thread for each step of the transformation.
19  *
20  * @author Michiel Meeuwissen
21  * @since MMBase-1.8
22  * @version $Id: CharTransformerLink.java,v 1.2 2005/01/30 16:46:37 nico Exp $
23  */

24
25 public class CharTransformerLink implements Runnable JavaDoc {
26
27     private static Logger log = Logging.getLoggerInstance(CharTransformerLink.class);
28
29     private CharTransformer charTransformer;
30     private Writer writer;
31     private Reader reader;
32     private boolean closeWriter;
33     private boolean ready = false;
34     
35     public CharTransformerLink(CharTransformer ct, Reader r, Writer w, boolean cw) {
36         reader = r;
37         writer = w;
38         charTransformer = ct;
39         closeWriter = cw;
40     }
41     
42     synchronized public void run() {
43         try {
44             charTransformer.transform(reader, writer);
45             if (closeWriter) {
46                 writer.close();
47             }
48         } catch (IOException io) {
49             log.error(io.toString());
50             log.error(io);
51         }
52         ready = true;
53         notifyAll();
54     }
55     synchronized public boolean ready() {
56         return ready;
57     }
58 }
59
Popular Tags