KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > core > text > parser > KOParser


1 /*
2  * Created on 15.07.2004
3  *
4  */

5 package org.contineo.core.text.parser;
6
7 import java.io.BufferedInputStream JavaDoc;
8 import java.io.File JavaDoc;
9 import java.io.FileInputStream JavaDoc;
10 import java.io.InputStream JavaDoc;
11 import org.apache.log4j.Level;
12 import org.apache.log4j.Logger;
13 import org.contineo.core.JarBean;
14 import org.contineo.core.LoggingManager;
15 import org.contineo.core.config.SettingConfigurator;
16
17 /**
18  * @author Michael Scholz
19  *
20  */

21 public class KOParser implements Parser {
22     
23     /**
24      * @uml.property name="content"
25      */

26     private StringBuffer JavaDoc content = new StringBuffer JavaDoc();
27
28     /**
29      * @uml.property name="logger"
30      * @uml.associationEnd
31      */

32     private Logger logger;
33
34     
35     public KOParser(File JavaDoc file) {
36         logger = LoggingManager.getLogger(this.getClass());
37         init(file);
38     }
39     
40     protected void init(File JavaDoc file) {
41         try {
42             SettingConfigurator conf = new SettingConfigurator();
43             JarBean.unjar(file.getAbsolutePath(),conf.getValue("userdir") + "unjar/",conf.getValue("kocontent"));
44             File JavaDoc xmlfile = new File JavaDoc(conf.getValue("userdir") + "unjar/" + conf.getValue("kocontent"));
45             InputStream JavaDoc in = new FileInputStream JavaDoc(xmlfile);
46             BufferedInputStream JavaDoc reader = new BufferedInputStream JavaDoc(in);
47             int ichar = 0;
48             boolean istag = false;
49             boolean isspec = false;
50             while ((ichar = reader.read()) != -1) {
51                 if (ichar == 60) {
52                     content.append((char)32);
53                     istag = true;
54                 }
55                 if (!istag) {
56                     if (ichar == 195)
57                         isspec = true;
58                     else {
59                         if (isspec) {
60                             switch (ichar) {
61                                 case 132: content.append('Ä');break;
62                                 case 164: content.append('ä');break;
63                                 case 150: content.append('Ö');break;
64                                 case 182: content.append('ö');break;
65                                 case 156: content.append('Ü');break;
66                                 case 188: content.append('ü');break;
67                                 case 159: content.append('ß');break;
68                             }
69                             isspec = false;
70                         }
71                         else
72                             content.append((char)ichar);
73                     }
74                 }
75                 if (ichar == 62)
76                     istag = false;
77             }
78             in.close();
79             reader.close();
80         }
81         catch (Exception JavaDoc ex) {
82             if (logger.isEnabledFor(Level.ERROR))
83                 logger.error(ex.getMessage());
84         }
85     }
86
87     /* (non-Javadoc)
88      * @see org.contineo.core.text.parser.Parser#getVersion()
89      */

90     public String JavaDoc getVersion() {
91         return "";
92     }
93
94     /**
95      *
96      * @uml.property name="content"
97      */

98     /* (non-Javadoc)
99      * @see org.contineo.core.text.parser.Parser#getContent()
100      */

101     public StringBuffer JavaDoc getContent() {
102         return content;
103     }
104
105     /* (non-Javadoc)
106      * @see org.contineo.core.text.parser.Parser#getAuthor()
107      */

108     public String JavaDoc getAuthor() {
109         return "";
110     }
111
112     /* (non-Javadoc)
113      * @see org.contineo.core.text.parser.Parser#getSourceDate()
114      */

115     public String JavaDoc getSourceDate() {
116         return "";
117     }
118
119     /* (non-Javadoc)
120      * @see org.contineo.core.text.parser.Parser#getKeywords()
121      */

122     public String JavaDoc getKeywords() {
123         return "";
124     }
125
126     /* (non-Javadoc)
127      * @see org.contineo.core.text.parser.Parser#getTitle()
128      */

129     public String JavaDoc getTitle() {
130         return "";
131     }
132
133 }
134
Popular Tags