J. Duke | 319a3b9 | 2007-12-01 00:00:00 +0000 | [diff] [blame^] | 1 | /* |
| 2 | * Copyright 2005-2006 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 | |
| 26 | package sun.nio.cs.ext; |
| 27 | |
| 28 | import java.nio.charset.Charset; |
| 29 | import java.nio.charset.CharsetDecoder; |
| 30 | import java.nio.charset.CharsetEncoder; |
| 31 | |
| 32 | class JIS_X_0212_MS5022X_Decoder extends JIS_X_0212_Decoder |
| 33 | { |
| 34 | private int _start, _end; |
| 35 | |
| 36 | public JIS_X_0212_MS5022X_Decoder(Charset cs) { |
| 37 | super(cs); |
| 38 | _start = 0x21; |
| 39 | _end = 0x7E; |
| 40 | } |
| 41 | |
| 42 | protected char decodeDouble(int byte1, int byte2) { |
| 43 | if (((byte1 < 0) || (byte1 > _index1.length)) |
| 44 | || ((byte2 < _start) || (byte2 > _end))) |
| 45 | return REPLACE_CHAR; |
| 46 | int n = (_index1[byte1] & 0xf)*(_end - _start + 1) + (byte2 - _start); |
| 47 | char unicode = _index2[_index1[byte1] >> 4].charAt(n); |
| 48 | if (unicode == '\u0000') |
| 49 | return (super.decodeDouble(byte1, byte2)); |
| 50 | else |
| 51 | return unicode; |
| 52 | } |
| 53 | |
| 54 | private final static String _innerIndex0= |
| 55 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 56 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 57 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 58 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 59 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 60 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 61 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 62 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 63 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 64 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 65 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 66 | "\u0000\u0000\u0000\u0000\u0000\u0000\u2170\u2171"+ |
| 67 | "\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179"+ |
| 68 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 69 | "\u0000\u0000\uFF07\uFF02\u0000\u0000\u0000\u70BB"+ |
| 70 | "\u4EFC\u50F4\u51EC\u5307\u5324\uFA0E\u548A\u5759"+ |
| 71 | "\uFA0F\uFA10\u589E\u5BEC\u5CF5\u5D53\uFA11\u5FB7"+ |
| 72 | "\u6085\u6120\u654E\u0000\u6665\uFA12\uF929\u6801"+ |
| 73 | "\uFA13\uFA14\u6A6B\u6AE2\u6DF8\u6DF2\u7028\uFA15"+ |
| 74 | "\uFA16\u7501\u7682\u769E\uFA17\u7930\uFA18\uFA19"+ |
| 75 | "\uFA1A\uFA1B\u7AE7\uFA1C\uFA1D\u7DA0\u7DD6\uFA1E"+ |
| 76 | "\u8362\uFA1F\u85B0\uFA20\uFA21\u8807\uFA22\u8B7F"+ |
| 77 | "\u8CF4\u8D76\uFA23\uFA24\uFA25\u90DE\uFA26\u9115"+ |
| 78 | "\uFA27\uFA28\u9592\uF9DC\uFA29\u973B\u0000\u9751"+ |
| 79 | "\uFA2A\uFA2B\uFA2C\u999E\u9AD9\u9B72\uFA2D\u9ED1"+ |
| 80 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 81 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 82 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 83 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 84 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 85 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 86 | "\u0000\u0000\u0000\u0000\u0000\u0000\u974D\u0000"+ |
| 87 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 88 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 89 | "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ |
| 90 | "\u0000\u0000\uE3AC\uE3AD\uE3AE\uE3AF\uE3B0\uE3B1"+ |
| 91 | "\uE3B2\uE3B3\uE3B4\uE3B5\uE3B6\uE3B7\uE3B8\uE3B9"+ |
| 92 | "\uE3BA\uE3BB\uE3BC\uE3BD\uE3BE\uE3BF\uE3C0\uE3C1"+ |
| 93 | "\uE3C2\uE3C3\uE3C4\uE3C5\uE3C6\uE3C7\uE3C8\uE3C9"+ |
| 94 | "\uE3CA\uE3CB\uE3CC\uE3CD\uE3CE\uE3CF\uE3D0\uE3D1"+ |
| 95 | "\uE3D2\uE3D3\uE3D4\uE3D5\uE3D6\uE3D7\uE3D8\uE3D9"+ |
| 96 | "\uE3DA\uE3DB\uE3DC\uE3DD\uE3DE\uE3DF\uE3E0\uE3E1"+ |
| 97 | "\uE3E2\uE3E3\uE3E4\uE3E5\uE3E6\uE3E7\uE3E8\uE3E9"+ |
| 98 | "\uE3EA\uE3EB\uE3EC\uE3ED\uE3EE\uE3EF\uE3F0\uE3F1"+ |
| 99 | "\uE3F2\uE3F3\uE3F4\uE3F5\uE3F6\uE3F7\uE3F8\uE3F9"+ |
| 100 | "\uE3FA\uE3FB\uE3FC\uE3FD\uE3FE\uE3FF\uE400\uE401"+ |
| 101 | "\uE402\uE403\uE404\uE405\uE406\uE407\uE408\uE409"+ |
| 102 | "\uE40A\uE40B\uE40C\uE40D\uE40E\uE40F\uE410\uE411"+ |
| 103 | "\uE412\uE413\uE414\uE415\uE416\uE417\uE418\uE419"+ |
| 104 | "\uE41A\uE41B\uE41C\uE41D\uE41E\uE41F\uE420\uE421"+ |
| 105 | "\uE422\uE423\uE424\uE425\uE426\uE427\uE428\uE429"+ |
| 106 | "\uE42A\uE42B\uE42C\uE42D\uE42E\uE42F\uE430\uE431"+ |
| 107 | "\uE432\uE433\uE434\uE435\uE436\uE437\uE438\uE439"+ |
| 108 | "\uE43A\uE43B\uE43C\uE43D\uE43E\uE43F\uE440\uE441"+ |
| 109 | "\uE442\uE443\uE444\uE445\uE446\uE447\uE448\uE449"+ |
| 110 | "\uE44A\uE44B\uE44C\uE44D\uE44E\uE44F\uE450\uE451"+ |
| 111 | "\uE452\uE453\uE454\uE455\uE456\uE457\uE458\uE459"+ |
| 112 | "\uE45A\uE45B\uE45C\uE45D\uE45E\uE45F\uE460\uE461"+ |
| 113 | "\uE462\uE463\uE464\uE465\uE466\uE467\uE468\uE469"+ |
| 114 | "\uE46A\uE46B\uE46C\uE46D\uE46E\uE46F\uE470\uE471"+ |
| 115 | "\uE472\uE473\uE474\uE475\uE476\uE477\uE478\uE479"+ |
| 116 | "\uE47A\uE47B\uE47C\uE47D\uE47E\uE47F\uE480\uE481"+ |
| 117 | "\uE482\uE483\uE484\uE485\uE486\uE487\uE488\uE489"+ |
| 118 | "\uE48A\uE48B\uE48C\uE48D\uE48E\uE48F\uE490\uE491"+ |
| 119 | "\uE492\uE493\uE494\uE495\uE496\uE497\uE498\uE499"+ |
| 120 | "\uE49A\uE49B\uE49C\uE49D\uE49E\uE49F\uE4A0\uE4A1"+ |
| 121 | "\uE4A2\uE4A3\uE4A4\uE4A5\uE4A6\uE4A7\uE4A8\uE4A9"+ |
| 122 | "\uE4AA\uE4AB\uE4AC\uE4AD\uE4AE\uE4AF\uE4B0\uE4B1"+ |
| 123 | "\uE4B2\uE4B3\uE4B4\uE4B5\uE4B6\uE4B7\uE4B8\uE4B9"+ |
| 124 | "\uE4BA\uE4BB\uE4BC\uE4BD\uE4BE\uE4BF\uE4C0\uE4C1"+ |
| 125 | "\uE4C2\uE4C3\uE4C4\uE4C5\uE4C6\uE4C7\uE4C8\uE4C9"+ |
| 126 | "\uE4CA\uE4CB\uE4CC\uE4CD\uE4CE\uE4CF\uE4D0\uE4D1"+ |
| 127 | "\uE4D2\uE4D3\uE4D4\uE4D5\uE4D6\uE4D7\uE4D8\uE4D9"+ |
| 128 | "\uE4DA\uE4DB\uE4DC\uE4DD\uE4DE\uE4DF\uE4E0\uE4E1"+ |
| 129 | "\uE4E2\uE4E3\uE4E4\uE4E5\uE4E6\uE4E7\uE4E8\uE4E9"+ |
| 130 | "\uE4EA\uE4EB\uE4EC\uE4ED\uE4EE\uE4EF\uE4F0\uE4F1"+ |
| 131 | "\uE4F2\uE4F3\uE4F4\uE4F5\uE4F6\uE4F7\uE4F8\uE4F9"+ |
| 132 | "\uE4FA\uE4FB\uE4FC\uE4FD\uE4FE\uE4FF\uE500\uE501"+ |
| 133 | "\uE502\uE503\uE504\uE505\uE506\uE507\uE508\uE509"+ |
| 134 | "\uE50A\uE50B\uE50C\uE50D\uE50E\uE50F\uE510\uE511"+ |
| 135 | "\uE512\uE513\uE514\uE515\uE516\uE517\uE518\uE519"+ |
| 136 | "\uE51A\uE51B\uE51C\uE51D\uE51E\uE51F\uE520\uE521"+ |
| 137 | "\uE522\uE523\uE524\uE525\uE526\uE527\uE528\uE529"+ |
| 138 | "\uE52A\uE52B\uE52C\uE52D\uE52E\uE52F\uE530\uE531"+ |
| 139 | "\uE532\uE533\uE534\uE535\uE536\uE537\uE538\uE539"+ |
| 140 | "\uE53A\uE53B\uE53C\uE53D\uE53E\uE53F\uE540\uE541"+ |
| 141 | "\uE542\uE543\uE544\uE545\uE546\uE547\uE548\uE549"+ |
| 142 | "\uE54A\uE54B\uE54C\uE54D\uE54E\uE54F\uE550\uE551"+ |
| 143 | "\uE552\uE553\uE554\uE555\uE556\uE557\uE558\uE559"+ |
| 144 | "\uE55A\uE55B\uE55C\uE55D\uE55E\uE55F\uE560\uE561"+ |
| 145 | "\uE562\uE563\uE564\uE565\uE566\uE567\uE568\uE569"+ |
| 146 | "\uE56A\uE56B\uE56C\uE56D\uE56E\uE56F\uE570\uE571"+ |
| 147 | "\uE572\uE573\uE574\uE575\uE576\uE577\uE578\uE579"+ |
| 148 | "\uE57A\uE57B\uE57C\uE57D\uE57E\uE57F\uE580\uE581"+ |
| 149 | "\uE582\uE583\uE584\uE585\uE586\uE587\uE588\uE589"+ |
| 150 | "\uE58A\uE58B\uE58C\uE58D\uE58E\uE58F\uE590\uE591"+ |
| 151 | "\uE592\uE593\uE594\uE595\uE596\uE597\uE598\uE599"+ |
| 152 | "\uE59A\uE59B\uE59C\uE59D\uE59E\uE59F\uE5A0\uE5A1"+ |
| 153 | "\uE5A2\uE5A3\uE5A4\uE5A5\uE5A6\uE5A7\uE5A8\uE5A9"+ |
| 154 | "\uE5AA\uE5AB\uE5AC\uE5AD\uE5AE\uE5AF\uE5B0\uE5B1"+ |
| 155 | "\uE5B2\uE5B3\uE5B4\uE5B5\uE5B6\uE5B7\uE5B8\uE5B9"+ |
| 156 | "\uE5BA\uE5BB\uE5BC\uE5BD\uE5BE\uE5BF\uE5C0\uE5C1"+ |
| 157 | "\uE5C2\uE5C3\uE5C4\uE5C5\uE5C6\uE5C7\uE5C8\uE5C9"+ |
| 158 | "\uE5CA\uE5CB\uE5CC\uE5CD\uE5CE\uE5CF\uE5D0\uE5D1"+ |
| 159 | "\uE5D2\uE5D3\uE5D4\uE5D5\uE5D6\uE5D7\uE5D8\uE5D9"+ |
| 160 | "\uE5DA\uE5DB\uE5DC\uE5DD\uE5DE\uE5DF\uE5E0\uE5E1"+ |
| 161 | "\uE5E2\uE5E3\uE5E4\uE5E5\uE5E6\uE5E7\uE5E8\uE5E9"+ |
| 162 | "\uE5EA\uE5EB\uE5EC\uE5ED\uE5EE\uE5EF\uE5F0\uE5F1"+ |
| 163 | "\uE5F2\uE5F3\uE5F4\uE5F5\uE5F6\uE5F7\uE5F8\uE5F9"+ |
| 164 | "\uE5FA\uE5FB\uE5FC\uE5FD\uE5FE\uE5FF\uE600\uE601"+ |
| 165 | "\uE602\uE603\uE604\uE605\uE606\uE607\uE608\uE609"+ |
| 166 | "\uE60A\uE60B\uE60C\uE60D\uE60E\uE60F\uE610\uE611"+ |
| 167 | "\uE612\uE613\uE614\uE615\uE616\uE617\uE618\uE619"+ |
| 168 | "\uE61A\uE61B\uE61C\uE61D\uE61E\uE61F\uE620\uE621"+ |
| 169 | "\uE622\uE623\uE624\uE625\uE626\uE627\uE628\uE629"+ |
| 170 | "\uE62A\uE62B\uE62C\uE62D\uE62E\uE62F\uE630\uE631"+ |
| 171 | "\uE632\uE633\uE634\uE635\uE636\uE637\uE638\uE639"+ |
| 172 | "\uE63A\uE63B\uE63C\uE63D\uE63E\uE63F\uE640\uE641"+ |
| 173 | "\uE642\uE643\uE644\uE645\uE646\uE647\uE648\uE649"+ |
| 174 | "\uE64A\uE64B\uE64C\uE64D\uE64E\uE64F\uE650\uE651"+ |
| 175 | "\uE652\uE653\uE654\uE655\uE656\uE657\uE658\uE659"+ |
| 176 | "\uE65A\uE65B\uE65C\uE65D\uE65E\uE65F\uE660\uE661"+ |
| 177 | "\uE662\uE663\uE664\uE665\uE666\uE667\uE668\uE669"+ |
| 178 | "\uE66A\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671"+ |
| 179 | "\uE672\uE673\uE674\uE675\uE676\uE677\uE678\uE679"+ |
| 180 | "\uE67A\uE67B\uE67C\uE67D\uE67E\uE67F\uE680\uE681"+ |
| 181 | "\uE682\uE683\uE684\uE685\uE686\uE687\uE688\uE689"+ |
| 182 | "\uE68A\uE68B\uE68C\uE68D\uE68E\uE68F\uE690\uE691"+ |
| 183 | "\uE692\uE693\uE694\uE695\uE696\uE697\uE698\uE699"+ |
| 184 | "\uE69A\uE69B\uE69C\uE69D\uE69E\uE69F\uE6A0\uE6A1"+ |
| 185 | "\uE6A2\uE6A3\uE6A4\uE6A5\uE6A6\uE6A7\uE6A8\uE6A9"+ |
| 186 | "\uE6AA\uE6AB\uE6AC\uE6AD\uE6AE\uE6AF\uE6B0\uE6B1"+ |
| 187 | "\uE6B2\uE6B3\uE6B4\uE6B5\uE6B6\uE6B7\uE6B8\uE6B9"+ |
| 188 | "\uE6BA\uE6BB\uE6BC\uE6BD\uE6BE\uE6BF\uE6C0\uE6C1"+ |
| 189 | "\uE6C2\uE6C3\uE6C4\uE6C5\uE6C6\uE6C7\uE6C8\uE6C9"+ |
| 190 | "\uE6CA\uE6CB\uE6CC\uE6CD\uE6CE\uE6CF\uE6D0\uE6D1"+ |
| 191 | "\uE6D2\uE6D3\uE6D4\uE6D5\uE6D6\uE6D7\uE6D8\uE6D9"+ |
| 192 | "\uE6DA\uE6DB\uE6DC\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1"+ |
| 193 | "\uE6E2\uE6E3\uE6E4\uE6E5\uE6E6\uE6E7\uE6E8\uE6E9"+ |
| 194 | "\uE6EA\uE6EB\uE6EC\uE6ED\uE6EE\uE6EF\uE6F0\uE6F1"+ |
| 195 | "\uE6F2\uE6F3\uE6F4\uE6F5\uE6F6\uE6F7\uE6F8\uE6F9"+ |
| 196 | "\uE6FA\uE6FB\uE6FC\uE6FD\uE6FE\uE6FF\uE700\uE701"+ |
| 197 | "\uE702\uE703\uE704\uE705\uE706\uE707\uE708\uE709"+ |
| 198 | "\uE70A\uE70B\uE70C\uE70D\uE70E\uE70F\uE710\uE711"+ |
| 199 | "\uE712\uE713\uE714\uE715\uE716\uE717\uE718\uE719"+ |
| 200 | "\uE71A\uE71B\uE71C\uE71D\uE71E\uE71F\uE720\uE721"+ |
| 201 | "\uE722\uE723\uE724\uE725\uE726\uE727\uE728\uE729"+ |
| 202 | "\uE72A\uE72B\uE72C\uE72D\uE72E\uE72F\uE730\uE731"+ |
| 203 | "\uE732\uE733\uE734\uE735\uE736\uE737\uE738\uE739"+ |
| 204 | "\uE73A\uE73B\uE73C\uE73D\uE73E\uE73F\uE740\uE741"+ |
| 205 | "\uE742\uE743\uE744\uE745\uE746\uE747\uE748\uE749"+ |
| 206 | "\uE74A\uE74B\uE74C\uE74D\uE74E\uE74F\uE750\uE751"+ |
| 207 | "\uE752\uE753\uE754\uE755\uE756\uE757"; |
| 208 | |
| 209 | private final static short _index1[] = { |
| 210 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 211 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 212 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 213 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 214 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 215 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 216 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 217 | 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, |
| 218 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 219 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 220 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 221 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 222 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 223 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 224 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 225 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
| 226 | }; |
| 227 | |
| 228 | private final static String _index2[] = { |
| 229 | _innerIndex0 |
| 230 | }; |
| 231 | |
| 232 | } |