1 /* 2 * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Sun designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Sun in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 * CA 95054 USA or visit www.sun.com if you need additional information or 23 * have any questions. 24 */ 25 package sun.io; 26 27 import sun.nio.cs.ext.IBM949; 28 29 /** 30 * Tables and data to convert Cp949 to Unicode. 31 * 32 * @author Malcolm Ayres, assisted by UniMap program 33 */ 34 public class ByteToCharCp949 35 extends ByteToCharDBCS_ASCII 36 37 { 38 private final static IBM949 nioCoder = new IBM949(); 39 40 // Return the character set id 41 public String getCharacterEncoding() 42 { 43 return "Cp949"; 44 } 45 46 47 private static final boolean leadByte[] = { 48 false, false, false, false, false, false, false, false, // 00 - 07 49 false, false, false, false, false, false, false, false, // 08 - 0F 50 false, false, false, false, false, false, false, false, // 10 - 17 51 false, false, false, false, false, false, false, false, // 18 - 1F 52 false, false, false, false, false, false, false, false, // 20 - 27 53 false, false, false, false, false, false, false, false, // 28 - 2F 54 false, false, false, false, false, false, false, false, // 30 - 37 55 false, false, false, false, false, false, false, false, // 38 - 3F 56 false, false, false, false, false, false, false, false, // 40 - 47 57 false, false, false, false, false, false, false, false, // 48 - 4F 58 false, false, false, false, false, false, false, false, // 50 - 57 59 false, false, false, false, false, false, false, false, // 58 - 5F 60 false, false, false, false, false, false, false, false, // 60 - 67 61 false, false, false, false, false, false, false, false, // 68 - 6F 62 false, false, false, false, false, false, false, false, // 70 - 77 63 false, false, false, false, false, false, false, false, // 78 - 7F 64 false, false, false, false, false, false, false, false, // 80 - 87 65 false, false, false, false, false, false, false, true, // 88 - 8F 66 true, true, true, true, true, true, true, true, // 90 - 97 67 true, true, true, true, true, true, true, true, // 98 - 9F 68 true, true, true, true, true, true, true, true, // A0 - A7 69 true, true, true, true, true, false, false, false, // A8 - AF 70 true, true, true, true, true, true, true, true, // B0 - B7 71 true, true, true, true, true, true, true, true, // B8 - BF 72 true, true, true, true, true, true, true, true, // C0 - C7 73 true, true, true, true, true, true, true, true, // C8 - CF 74 true, true, true, true, true, true, true, true, // D0 - D7 75 true, true, true, true, true, true, true, true, // D8 - DF 76 true, true, true, true, true, true, true, true, // E0 - E7 77 true, true, true, true, true, true, true, true, // E8 - EF 78 true, true, true, true, true, true, true, true, // F0 - F7 79 true, true, true, true, true, true, true, false, // F8 - FF 80 }; 81 82 83 public ByteToCharCp949() { 84 super(); 85 super.mask1 = 0xFFE0; 86 super.mask2 = 0x001F; 87 super.shift = 5; 88 super.leadByte = this.leadByte; 89 super.singleByteToChar = nioCoder.getDecoderSingleByteMappings(); 90 super.index1 = nioCoder.getDecoderIndex1(); 91 super.index2 = nioCoder.getDecoderIndex2(); 92 } 93 }