//#condition !(TinyMode || TinyModeExport)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.albite.io.decoders;
/**
*
* @author albus
*/
class DecoderISO_8859_3 extends SingleByteDecoder {
private static DecoderISO_8859_3 instance;
private static final short[] MAP = {
/* 0xa0 */
0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, (short) 0xfffd, 0x0124, 0x00a7,
0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, (short) 0xfffd, 0x017b,
/* 0xb0 */
0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7,
0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, (short)0xfffd, 0x017c,
/* 0xc0 */
0x00c0, 0x00c1, 0x00c2, (short)0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7,
0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
/* 0xd0 */
(short)0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7,
0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df,
/* 0xe0 */
0x00e0, 0x00e1, 0x00e2, (short)0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7,
0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
/* 0xf0 */
(short)0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7,
0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9,
};
private DecoderISO_8859_3() {}
public static AlbiteCharacterDecoder getInstance() {
if (instance == null) {
instance = new DecoderISO_8859_3();
}
return instance;
}
public final int decode(int code) {
if (code < 0xa0) {
return code;
} else {
code = MAP[code - 0xa0] & 0xFFFF;
if (code == 0xFFFD) {
return SUBSTITUTE_CHAR;
} else {
return code;
}
}
}
public final String getEncoding() {
return Encodings.ISO_8859_3;
}
}