KickJava   Java API By Example, From Geeks To Geeks.

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


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
11 package org.mmbase.util.transformers;
12
13 import java.io.Reader JavaDoc;
14 import java.io.Writer JavaDoc;
15
16 import org.mmbase.util.logging.Logger;
17 import org.mmbase.util.logging.Logging;
18
19 /**
20  * Any non-ASCII character will be replaced by an XML-entity.
21  *
22  * @author Michiel Meeuwissen
23  * @since MMBase-1.7
24  * @version $Id: XmlEntities.java,v 1.4 2003/07/01 11:03:33 michiel Exp $
25  */

26 public class XmlEntities extends ReaderTransformer implements CharTransformer {
27     private static Logger log = Logging.getLoggerInstance(XmlEntities.class);
28       
29     public Writer JavaDoc transform(Reader JavaDoc r, Writer JavaDoc w) {
30         try {
31             while (true) {
32                 int c = r.read();
33                 if (c == -1) break;
34                 if ( // c >= '\u0020' && Control character
35
c <= '\u007f') {
36                     w.write(c); // ASCII character, simply write
37
} else {
38                     w.write("&#" + c + ";"); // construct XML style unicode escaping
39
}
40             }
41         } catch (java.io.IOException JavaDoc e) {
42             log.error(e.toString());
43         }
44         return w;
45     }
46     public String JavaDoc toString() {
47         return "XMLENTITIES";
48     }
49 }
50
Popular Tags