001: package net.sf.saxon.charcode;
002:
003: /**
004: * This class defines properties of the ISO-8859-2 character set
005: */
006:
007: public class Latin2CharacterSet implements CharacterSet {
008:
009: private static Latin2CharacterSet theInstance = null;
010:
011: private Latin2CharacterSet() {
012: }
013:
014: public static Latin2CharacterSet getInstance() {
015: if (theInstance == null) {
016: init();
017: theInstance = new Latin2CharacterSet();
018: }
019: return theInstance;
020: }
021:
022: private static boolean[] c = null;
023:
024: private static void init() {
025:
026: c = new boolean[750];
027:
028: for (int i = 0; i < 127; i++) {
029: c[i] = true;
030: }
031: for (int i = 128; i < 750; i++) {
032: c[i] = false;
033: }
034:
035: c[160] = true;
036: c[164] = true;
037: c[167] = true;
038: c[168] = true;
039: c[173] = true;
040: c[176] = true;
041: c[180] = true;
042: c[184] = true;
043: c[193] = true;
044: c[194] = true;
045: c[196] = true;
046: c[199] = true;
047: c[201] = true;
048: c[203] = true;
049: c[205] = true;
050: c[206] = true;
051: c[211] = true;
052: c[212] = true;
053: c[214] = true;
054: c[215] = true;
055: c[218] = true;
056: c[220] = true;
057: c[221] = true;
058: c[223] = true;
059: c[225] = true;
060: c[226] = true;
061: c[228] = true;
062: c[231] = true;
063: c[233] = true;
064: c[235] = true;
065: c[237] = true;
066: c[238] = true;
067: c[243] = true;
068: c[244] = true;
069: c[246] = true;
070: c[247] = true;
071: c[250] = true;
072: c[252] = true;
073: c[253] = true;
074: c[258] = true;
075: c[259] = true;
076: c[260] = true;
077: c[261] = true;
078: c[262] = true;
079: c[263] = true;
080: c[268] = true;
081: c[269] = true;
082: c[270] = true;
083: c[271] = true;
084: c[272] = true;
085: c[273] = true;
086: c[280] = true;
087: c[281] = true;
088: c[282] = true;
089: c[283] = true;
090: c[313] = true;
091: c[314] = true;
092: c[317] = true;
093: c[318] = true;
094: c[321] = true;
095: c[322] = true;
096: c[323] = true;
097: c[324] = true;
098: c[327] = true;
099: c[328] = true;
100: c[336] = true;
101: c[337] = true;
102: c[340] = true;
103: c[341] = true;
104: c[344] = true;
105: c[345] = true;
106: c[346] = true;
107: c[347] = true;
108: c[350] = true;
109: c[351] = true;
110: c[352] = true;
111: c[353] = true;
112: c[354] = true;
113: c[355] = true;
114: c[356] = true;
115: c[357] = true;
116: c[366] = true;
117: c[367] = true;
118: c[368] = true;
119: c[369] = true;
120: c[377] = true;
121: c[378] = true;
122: c[379] = true;
123: c[380] = true;
124: c[381] = true;
125: c[382] = true;
126: c[711] = true;
127: c[728] = true;
128: c[729] = true;
129: c[731] = true;
130: c[733] = true;
131:
132: }
133:
134: public final boolean inCharset(int ch) {
135: return (ch < 750 && c[ch]);
136: }
137:
138: }
139:
140: // Data from Han The Thanh [thanh@informatics.muni.cz]
141:
142: // Latin2 UTF8-1 UTF8-2 Name Unicode
143: // 160 194 160 nobreakspace 160
144: // 164 194 164 currency 164
145: // 167 194 167 section 167
146: // 168 194 168 diaeresis 168
147: // 173 194 173 hyphen 173
148: // 176 194 176 degree 176
149: // 180 194 180 acute 180
150: // 184 194 184 cedilla 184
151: // 193 195 129 Aacute 193
152: // 194 195 130 Acircumflex 194
153: // 196 195 132 Adiaeresis 196
154: // 199 195 135 Ccedilla 199
155: // 201 195 137 Eacute 201
156: // 203 195 139 Ediaeresis 203
157: // 205 195 141 Iacute 205
158: // 206 195 142 Icircumflex 206
159: // 211 195 147 Oacute 211
160: // 212 195 148 Ocircumflex 212
161: // 214 195 150 Odiaeresis 214
162: // 215 195 151 multiply 215
163: // 218 195 154 Uacute 218
164: // 220 195 156 Udiaeresis 220
165: // 221 195 157 Yacute 221
166: // 223 195 159 ssharp 223
167: // 225 195 161 aacute 225
168: // 226 195 162 acircumflex 226
169: // 228 195 164 adiaeresis 228
170: // 231 195 167 ccedilla 231
171: // 233 195 169 eacute 233
172: // 235 195 171 ediaeresis 235
173: // 237 195 173 iacute 237
174: // 238 195 174 icircumflex 238
175: // 243 195 179 oacute 243
176: // 244 195 180 ocircumflex 244
177: // 246 195 182 odiaeresis 246
178: // 247 195 183 division 247
179: // 250 195 186 uacute 250
180: // 252 195 188 udiaeresis 252
181: // 253 195 189 yacute 253
182: // 195 196 130 Abreve 258
183: // 227 196 131 abreve 259
184: // 161 196 132 Aogonek 260
185: // 177 196 133 aogonek 261
186: // 198 196 134 Cacute 262
187: // 230 196 135 cacute 263
188: // 200 196 140 Ccaron 268
189: // 232 196 141 ccaron 269
190: // 207 196 142 Dcaron 270
191: // 239 196 143 dcaron 271
192: // 208 196 144 Eth 272
193: // 240 196 145 eth 273
194: // 202 196 152 Eogonek 280
195: // 234 196 153 eogonek 281
196: // 204 196 154 Ecaron 282
197: // 236 196 155 ecaron 283
198: // 197 196 185 Lacute 313
199: // 229 196 186 lacute 314
200: // 165 196 189 Lcaron 317
201: // 181 196 190 lcaron 318
202: // 163 197 129 Lstroke 321
203: // 179 197 130 lstroke 322
204: // 209 197 131 Nacute 323
205: // 241 197 132 nacute 324
206: // 210 197 135 Ncaron 327
207: // 242 197 136 ncaron 328
208: // 213 197 144 Odoubleacute 336
209: // 245 197 145 odoubleacute 337
210: // 192 197 148 Racute 340
211: // 224 197 149 racute 341
212: // 216 197 152 Rcaron 344
213: // 248 197 153 rcaron 345
214: // 166 197 154 Sacute 346
215: // 182 197 155 sacute 347
216: // 170 197 158 Scedilla 350
217: // 186 197 159 scedilla 351
218: // 169 197 160 Scaron 352
219: // 185 197 161 scaron 353
220: // 222 197 162 Tcedilla 354
221: // 254 197 163 tcedilla 355
222: // 171 197 164 Tcaron 356
223: // 187 197 165 tcaron 357
224: // 217 197 174 Uring 366
225: // 249 197 175 uring 367
226: // 219 197 176 Udoubleacute 368
227: // 251 197 177 udoubleacute 369
228: // 172 197 185 Zacute 377
229: // 188 197 186 zacute 378
230: // 175 197 187 Zabovedot 379
231: // 191 197 188 zabovedot 380
232: // 174 197 189 Zcaron 381
233: // 190 197 190 zcaron 382
234: // 183 203 135 caron 711
235: // 162 203 152 breve 728
236: // 255 203 153 abovedot 729
237: // 178 203 155 ogonek 731
238: // 189 203 157 doubleacute 733
239:
240: //
241: // The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License");
242: // you may not use this file except in compliance with the License. You may obtain a copy of the
243: // License at http://www.mozilla.org/MPL/
244: //
245: // Software distributed under the License is distributed on an "AS IS" basis,
246: // WITHOUT WARRANTY OF ANY KIND, either express or implied.
247: // See the License for the specific language governing rights and limitations under the License.
248: //
249: // The Original Code is: all this file.
250: //
251: // The Initial Developer of the Original Code is Michael H. Kay using data supplied by Han The Thanh [thanh@informatics.muni.cz]
252: //
253: // Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved.
254: //
255: // Contributor(s): none.
256: //
|