KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > lucene > demo > html > Entities


1 package org.apache.lucene.demo.html;
2
3 /**
4  * Copyright 2004 The Apache Software Foundation
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18
19 import java.util.*;
20
21 public class Entities {
22   static final Hashtable decoder = new Hashtable(300);
23   static final String JavaDoc[] encoder = new String JavaDoc[0x100];
24
25   static final String JavaDoc decode(String JavaDoc entity) {
26     if (entity.charAt(entity.length()-1) == ';') // remove trailing semicolon
27
entity = entity.substring(0, entity.length()-1);
28     if (entity.charAt(1) == '#') {
29       int start = 2;
30       int radix = 10;
31       if (entity.charAt(2) == 'X' || entity.charAt(2) == 'x') {
32     start++;
33     radix = 16;
34       }
35       Character JavaDoc c =
36     new Character JavaDoc((char)Integer.parseInt(entity.substring(start), radix));
37       return c.toString();
38     } else {
39       String JavaDoc s = (String JavaDoc)decoder.get(entity);
40       if (s != null)
41     return s;
42       else return ""; //$NON-NLS-1$
43
}
44   }
45
46   public static final String JavaDoc encode(String JavaDoc s) {
47     int length = s.length();
48     StringBuffer JavaDoc buffer = new StringBuffer JavaDoc(length * 2);
49     for (int i = 0; i < length; i++) {
50       char c = s.charAt(i);
51       int j = (int)c;
52       if (j < 0x100 && encoder[j] != null) {
53     buffer.append(encoder[j]); // have a named encoding
54
buffer.append(';');
55       } else if (j < 0x80) {
56     buffer.append(c); // use ASCII value
57
} else {
58     buffer.append("&#"); // use numeric encoding //$NON-NLS-1$
59
buffer.append((int)c);
60     buffer.append(';');
61       }
62     }
63     return buffer.toString();
64   }
65
66   static final void add(String JavaDoc entity, int value) {
67     decoder.put(entity, (new Character JavaDoc((char)value)).toString());
68     if (value < 0x100)
69       encoder[value] = entity;
70   }
71
72   static {
73     add("&nbsp", 160); //$NON-NLS-1$
74
add("&iexcl", 161); //$NON-NLS-1$
75
add("&cent", 162); //$NON-NLS-1$
76
add("&pound", 163); //$NON-NLS-1$
77
add("&curren", 164); //$NON-NLS-1$
78
add("&yen", 165); //$NON-NLS-1$
79
add("&brvbar", 166); //$NON-NLS-1$
80
add("&sect", 167); //$NON-NLS-1$
81
add("&uml", 168); //$NON-NLS-1$
82
add("&copy", 169); //$NON-NLS-1$
83
add("&ordf", 170); //$NON-NLS-1$
84
add("&laquo", 171); //$NON-NLS-1$
85
add("&not", 172); //$NON-NLS-1$
86
add("&shy", 173); //$NON-NLS-1$
87
add("&reg", 174); //$NON-NLS-1$
88
add("&macr", 175); //$NON-NLS-1$
89
add("&deg", 176); //$NON-NLS-1$
90
add("&plusmn", 177); //$NON-NLS-1$
91
add("&sup2", 178); //$NON-NLS-1$
92
add("&sup3", 179); //$NON-NLS-1$
93
add("&acute", 180); //$NON-NLS-1$
94
add("&micro", 181); //$NON-NLS-1$
95
add("&para", 182); //$NON-NLS-1$
96
add("&middot", 183); //$NON-NLS-1$
97
add("&cedil", 184); //$NON-NLS-1$
98
add("&sup1", 185); //$NON-NLS-1$
99
add("&ordm", 186); //$NON-NLS-1$
100
add("&raquo", 187); //$NON-NLS-1$
101
add("&frac14", 188); //$NON-NLS-1$
102
add("&frac12", 189); //$NON-NLS-1$
103
add("&frac34", 190); //$NON-NLS-1$
104
add("&iquest", 191); //$NON-NLS-1$
105
add("&Agrave", 192); //$NON-NLS-1$
106
add("&Aacute", 193); //$NON-NLS-1$
107
add("&Acirc", 194); //$NON-NLS-1$
108
add("&Atilde", 195); //$NON-NLS-1$
109
add("&Auml", 196); //$NON-NLS-1$
110
add("&Aring", 197); //$NON-NLS-1$
111
add("&AElig", 198); //$NON-NLS-1$
112
add("&Ccedil", 199); //$NON-NLS-1$
113
add("&Egrave", 200); //$NON-NLS-1$
114
add("&Eacute", 201); //$NON-NLS-1$
115
add("&Ecirc", 202); //$NON-NLS-1$
116
add("&Euml", 203); //$NON-NLS-1$
117
add("&Igrave", 204); //$NON-NLS-1$
118
add("&Iacute", 205); //$NON-NLS-1$
119
add("&Icirc", 206); //$NON-NLS-1$
120
add("&Iuml", 207); //$NON-NLS-1$
121
add("&ETH", 208); //$NON-NLS-1$
122
add("&Ntilde", 209); //$NON-NLS-1$
123
add("&Ograve", 210); //$NON-NLS-1$
124
add("&Oacute", 211); //$NON-NLS-1$
125
add("&Ocirc", 212); //$NON-NLS-1$
126
add("&Otilde", 213); //$NON-NLS-1$
127
add("&Ouml", 214); //$NON-NLS-1$
128
add("&times", 215); //$NON-NLS-1$
129
add("&Oslash", 216); //$NON-NLS-1$
130
add("&Ugrave", 217); //$NON-NLS-1$
131
add("&Uacute", 218); //$NON-NLS-1$
132
add("&Ucirc", 219); //$NON-NLS-1$
133
add("&Uuml", 220); //$NON-NLS-1$
134
add("&Yacute", 221); //$NON-NLS-1$
135
add("&THORN", 222); //$NON-NLS-1$
136
add("&szlig", 223); //$NON-NLS-1$
137
add("&agrave", 224); //$NON-NLS-1$
138
add("&aacute", 225); //$NON-NLS-1$
139
add("&acirc", 226); //$NON-NLS-1$
140
add("&atilde", 227); //$NON-NLS-1$
141
add("&auml", 228); //$NON-NLS-1$
142
add("&aring", 229); //$NON-NLS-1$
143
add("&aelig", 230); //$NON-NLS-1$
144
add("&ccedil", 231); //$NON-NLS-1$
145
add("&egrave", 232); //$NON-NLS-1$
146
add("&eacute", 233); //$NON-NLS-1$
147
add("&ecirc", 234); //$NON-NLS-1$
148
add("&euml", 235); //$NON-NLS-1$
149
add("&igrave", 236); //$NON-NLS-1$
150
add("&iacute", 237); //$NON-NLS-1$
151
add("&icirc", 238); //$NON-NLS-1$
152
add("&iuml", 239); //$NON-NLS-1$
153
add("&eth", 240); //$NON-NLS-1$
154
add("&ntilde", 241); //$NON-NLS-1$
155
add("&ograve", 242); //$NON-NLS-1$
156
add("&oacute", 243); //$NON-NLS-1$
157
add("&ocirc", 244); //$NON-NLS-1$
158
add("&otilde", 245); //$NON-NLS-1$
159
add("&ouml", 246); //$NON-NLS-1$
160
add("&divide", 247); //$NON-NLS-1$
161
add("&oslash", 248); //$NON-NLS-1$
162
add("&ugrave", 249); //$NON-NLS-1$
163
add("&uacute", 250); //$NON-NLS-1$
164
add("&ucirc", 251); //$NON-NLS-1$
165
add("&uuml", 252); //$NON-NLS-1$
166
add("&yacute", 253); //$NON-NLS-1$
167
add("&thorn", 254); //$NON-NLS-1$
168
add("&yuml", 255); //$NON-NLS-1$
169
add("&fnof", 402); //$NON-NLS-1$
170
add("&Alpha", 913); //$NON-NLS-1$
171
add("&Beta", 914); //$NON-NLS-1$
172
add("&Gamma", 915); //$NON-NLS-1$
173
add("&Delta", 916); //$NON-NLS-1$
174
add("&Epsilon",917); //$NON-NLS-1$
175
add("&Zeta", 918); //$NON-NLS-1$
176
add("&Eta", 919); //$NON-NLS-1$
177
add("&Theta", 920); //$NON-NLS-1$
178
add("&Iota", 921); //$NON-NLS-1$
179
add("&Kappa", 922); //$NON-NLS-1$
180
add("&Lambda", 923); //$NON-NLS-1$
181
add("&Mu", 924); //$NON-NLS-1$
182
add("&Nu", 925); //$NON-NLS-1$
183
add("&Xi", 926); //$NON-NLS-1$
184
add("&Omicron",927); //$NON-NLS-1$
185
add("&Pi", 928); //$NON-NLS-1$
186
add("&Rho", 929); //$NON-NLS-1$
187
add("&Sigma", 931); //$NON-NLS-1$
188
add("&Tau", 932); //$NON-NLS-1$
189
add("&Upsilon",933); //$NON-NLS-1$
190
add("&Phi", 934); //$NON-NLS-1$
191
add("&Chi", 935); //$NON-NLS-1$
192
add("&Psi", 936); //$NON-NLS-1$
193
add("&Omega", 937); //$NON-NLS-1$
194
add("&alpha", 945); //$NON-NLS-1$
195
add("&beta", 946); //$NON-NLS-1$
196
add("&gamma", 947); //$NON-NLS-1$
197
add("&delta", 948); //$NON-NLS-1$
198
add("&epsilon",949); //$NON-NLS-1$
199
add("&zeta", 950); //$NON-NLS-1$
200
add("&eta", 951); //$NON-NLS-1$
201
add("&theta", 952); //$NON-NLS-1$
202
add("&iota", 953); //$NON-NLS-1$
203
add("&kappa", 954); //$NON-NLS-1$
204
add("&lambda", 955); //$NON-NLS-1$
205
add("&mu", 956); //$NON-NLS-1$
206
add("&nu", 957); //$NON-NLS-1$
207
add("&xi", 958); //$NON-NLS-1$
208
add("&omicron",959); //$NON-NLS-1$
209
add("&pi", 960); //$NON-NLS-1$
210
add("&rho", 961); //$NON-NLS-1$
211
add("&sigmaf", 962); //$NON-NLS-1$
212
add("&sigma", 963); //$NON-NLS-1$
213
add("&tau", 964); //$NON-NLS-1$
214
add("&upsilon",965); //$NON-NLS-1$
215
add("&phi", 966); //$NON-NLS-1$
216
add("&chi", 967); //$NON-NLS-1$
217
add("&psi", 968); //$NON-NLS-1$
218
add("&omega", 969); //$NON-NLS-1$
219
add("&thetasym",977); //$NON-NLS-1$
220
add("&upsih", 978); //$NON-NLS-1$
221
add("&piv", 982); //$NON-NLS-1$
222
add("&bull", 8226); //$NON-NLS-1$
223
add("&hellip", 8230); //$NON-NLS-1$
224
add("&prime", 8242); //$NON-NLS-1$
225
add("&Prime", 8243); //$NON-NLS-1$
226
add("&oline", 8254); //$NON-NLS-1$
227
add("&frasl", 8260); //$NON-NLS-1$
228
add("&weierp", 8472); //$NON-NLS-1$
229
add("&image", 8465); //$NON-NLS-1$
230
add("&real", 8476); //$NON-NLS-1$
231
add("&trade", 8482); //$NON-NLS-1$
232
add("&alefsym",8501); //$NON-NLS-1$
233
add("&larr", 8592); //$NON-NLS-1$
234
add("&uarr", 8593); //$NON-NLS-1$
235
add("&rarr", 8594); //$NON-NLS-1$
236
add("&darr", 8595); //$NON-NLS-1$
237
add("&harr", 8596); //$NON-NLS-1$
238
add("&crarr", 8629); //$NON-NLS-1$
239
add("&lArr", 8656); //$NON-NLS-1$
240
add("&uArr", 8657); //$NON-NLS-1$
241
add("&rArr", 8658); //$NON-NLS-1$
242
add("&dArr", 8659); //$NON-NLS-1$
243
add("&hArr", 8660); //$NON-NLS-1$
244
add("&forall", 8704); //$NON-NLS-1$
245
add("&part", 8706); //$NON-NLS-1$
246
add("&exist", 8707); //$NON-NLS-1$
247
add("&empty", 8709); //$NON-NLS-1$
248
add("&nabla", 8711); //$NON-NLS-1$
249
add("&isin", 8712); //$NON-NLS-1$
250
add("&notin", 8713); //$NON-NLS-1$
251
add("&ni", 8715); //$NON-NLS-1$
252
add("&prod", 8719); //$NON-NLS-1$
253
add("&sum", 8721); //$NON-NLS-1$
254
add("&minus", 8722); //$NON-NLS-1$
255
add("&lowast", 8727); //$NON-NLS-1$
256
add("&radic", 8730); //$NON-NLS-1$
257
add("&prop", 8733); //$NON-NLS-1$
258
add("&infin", 8734); //$NON-NLS-1$
259
add("&ang", 8736); //$NON-NLS-1$
260
add("&and", 8743); //$NON-NLS-1$
261
add("&or", 8744); //$NON-NLS-1$
262
add("&cap", 8745); //$NON-NLS-1$
263
add("&cup", 8746); //$NON-NLS-1$
264
add("&int", 8747); //$NON-NLS-1$
265
add("&there4", 8756); //$NON-NLS-1$
266
add("&sim", 8764); //$NON-NLS-1$
267
add("&cong", 8773); //$NON-NLS-1$
268
add("&asymp", 8776); //$NON-NLS-1$
269
add("&ne", 8800); //$NON-NLS-1$
270
add("&equiv", 8801); //$NON-NLS-1$
271
add("&le", 8804); //$NON-NLS-1$
272
add("&ge", 8805); //$NON-NLS-1$
273
add("&sub", 8834); //$NON-NLS-1$
274
add("&sup", 8835); //$NON-NLS-1$
275
add("&nsub", 8836); //$NON-NLS-1$
276
add("&sube", 8838); //$NON-NLS-1$
277
add("&supe", 8839); //$NON-NLS-1$
278
add("&oplus", 8853); //$NON-NLS-1$
279
add("&otimes", 8855); //$NON-NLS-1$
280
add("&perp", 8869); //$NON-NLS-1$
281
add("&sdot", 8901); //$NON-NLS-1$
282
add("&lceil", 8968); //$NON-NLS-1$
283
add("&rceil", 8969); //$NON-NLS-1$
284
add("&lfloor", 8970); //$NON-NLS-1$
285
add("&rfloor", 8971); //$NON-NLS-1$
286
add("&lang", 9001); //$NON-NLS-1$
287
add("&rang", 9002); //$NON-NLS-1$
288
add("&loz", 9674); //$NON-NLS-1$
289
add("&spades", 9824); //$NON-NLS-1$
290
add("&clubs", 9827); //$NON-NLS-1$
291
add("&hearts", 9829); //$NON-NLS-1$
292
add("&diams", 9830); //$NON-NLS-1$
293
add("&quot", 34); //$NON-NLS-1$
294
add("&amp", 38); //$NON-NLS-1$
295
add("&lt", 60); //$NON-NLS-1$
296
add("&gt", 62); //$NON-NLS-1$
297
add("&OElig", 338); //$NON-NLS-1$
298
add("&oelig", 339); //$NON-NLS-1$
299
add("&Scaron", 352); //$NON-NLS-1$
300
add("&scaron", 353); //$NON-NLS-1$
301
add("&Yuml", 376); //$NON-NLS-1$
302
add("&circ", 710); //$NON-NLS-1$
303
add("&tilde", 732); //$NON-NLS-1$
304
add("&ensp", 8194); //$NON-NLS-1$
305
add("&emsp", 8195); //$NON-NLS-1$
306
add("&thinsp", 8201); //$NON-NLS-1$
307
add("&zwnj", 8204); //$NON-NLS-1$
308
add("&zwj", 8205); //$NON-NLS-1$
309
add("&lrm", 8206); //$NON-NLS-1$
310
add("&rlm", 8207); //$NON-NLS-1$
311
add("&ndash", 8211); //$NON-NLS-1$
312
add("&mdash", 8212); //$NON-NLS-1$
313
add("&lsquo", 8216); //$NON-NLS-1$
314
add("&rsquo", 8217); //$NON-NLS-1$
315
add("&sbquo", 8218); //$NON-NLS-1$
316
add("&ldquo", 8220); //$NON-NLS-1$
317
add("&rdquo", 8221); //$NON-NLS-1$
318
add("&bdquo", 8222); //$NON-NLS-1$
319
add("&dagger", 8224); //$NON-NLS-1$
320
add("&Dagger", 8225); //$NON-NLS-1$
321
add("&permil", 8240); //$NON-NLS-1$
322
add("&lsaquo", 8249); //$NON-NLS-1$
323
add("&rsaquo", 8250); //$NON-NLS-1$
324
add("&euro", 8364); //$NON-NLS-1$
325

326   }
327 }
328
Popular Tags