KickJava   Java API By Example, From Geeks To Geeks.

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


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.Reader JavaDoc;
13 import java.io.Writer JavaDoc;
14
15 import org.mmbase.util.logging.*;
16
17 /**
18  * Transforms strings to identifiers, replacing punctuation and whitespace with
19  * underscores.
20  *
21  * @author Pierre van Rooden
22  * @since MMBase-1.7
23  * @version $Id: Identifier.java,v 1.3 2004/07/09 20:38:42 michiel Exp $
24  */

25
26 public class Identifier extends ReaderTransformer implements CharTransformer {
27     private static Logger log = Logging.getLoggerInstance(Identifier.class);
28
29     public Writer JavaDoc transform(Reader JavaDoc r, Writer JavaDoc w) {
30         try {
31             log.debug("Starting identifier");
32             while (true) {
33                 int c = r.read();
34                 if (c == -1) break;
35                 if (Character.isLetterOrDigit((char)c)) {
36                     w.write((char)c);
37                 } else {
38                     w.write('_');
39                 }
40             }
41             log.debug("Finished identifier");
42         } catch (java.io.IOException JavaDoc e) {
43             log.error(e.toString());
44         }
45         return w;
46     }
47
48     public String JavaDoc toString() {
49         return "IDENTIFIER";
50     }
51 }
52
Popular Tags