blob: 844429ae7f68dd90485fd71ef555317a4fe2f4e6 [file] [log] [blame]
/*
* Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.nio.cs.ext;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
class JIS_X_0212_MS5022X_Decoder extends JIS_X_0212_Decoder
{
private int _start, _end;
public JIS_X_0212_MS5022X_Decoder(Charset cs) {
super(cs);
_start = 0x21;
_end = 0x7E;
}
protected char decodeDouble(int byte1, int byte2) {
if (((byte1 < 0) || (byte1 > _index1.length))
|| ((byte2 < _start) || (byte2 > _end)))
return REPLACE_CHAR;
int n = (_index1[byte1] & 0xf)*(_end - _start + 1) + (byte2 - _start);
char unicode = _index2[_index1[byte1] >> 4].charAt(n);
if (unicode == '\u0000')
return (super.decodeDouble(byte1, byte2));
else
return unicode;
}
private final static String _innerIndex0=
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u2170\u2171"+
"\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\uFF07\uFF02\u0000\u0000\u0000\u70BB"+
"\u4EFC\u50F4\u51EC\u5307\u5324\uFA0E\u548A\u5759"+
"\uFA0F\uFA10\u589E\u5BEC\u5CF5\u5D53\uFA11\u5FB7"+
"\u6085\u6120\u654E\u0000\u6665\uFA12\uF929\u6801"+
"\uFA13\uFA14\u6A6B\u6AE2\u6DF8\u6DF2\u7028\uFA15"+
"\uFA16\u7501\u7682\u769E\uFA17\u7930\uFA18\uFA19"+
"\uFA1A\uFA1B\u7AE7\uFA1C\uFA1D\u7DA0\u7DD6\uFA1E"+
"\u8362\uFA1F\u85B0\uFA20\uFA21\u8807\uFA22\u8B7F"+
"\u8CF4\u8D76\uFA23\uFA24\uFA25\u90DE\uFA26\u9115"+
"\uFA27\uFA28\u9592\uF9DC\uFA29\u973B\u0000\u9751"+
"\uFA2A\uFA2B\uFA2C\u999E\u9AD9\u9B72\uFA2D\u9ED1"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u974D\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
"\u0000\u0000\uE3AC\uE3AD\uE3AE\uE3AF\uE3B0\uE3B1"+
"\uE3B2\uE3B3\uE3B4\uE3B5\uE3B6\uE3B7\uE3B8\uE3B9"+
"\uE3BA\uE3BB\uE3BC\uE3BD\uE3BE\uE3BF\uE3C0\uE3C1"+
"\uE3C2\uE3C3\uE3C4\uE3C5\uE3C6\uE3C7\uE3C8\uE3C9"+
"\uE3CA\uE3CB\uE3CC\uE3CD\uE3CE\uE3CF\uE3D0\uE3D1"+
"\uE3D2\uE3D3\uE3D4\uE3D5\uE3D6\uE3D7\uE3D8\uE3D9"+
"\uE3DA\uE3DB\uE3DC\uE3DD\uE3DE\uE3DF\uE3E0\uE3E1"+
"\uE3E2\uE3E3\uE3E4\uE3E5\uE3E6\uE3E7\uE3E8\uE3E9"+
"\uE3EA\uE3EB\uE3EC\uE3ED\uE3EE\uE3EF\uE3F0\uE3F1"+
"\uE3F2\uE3F3\uE3F4\uE3F5\uE3F6\uE3F7\uE3F8\uE3F9"+
"\uE3FA\uE3FB\uE3FC\uE3FD\uE3FE\uE3FF\uE400\uE401"+
"\uE402\uE403\uE404\uE405\uE406\uE407\uE408\uE409"+
"\uE40A\uE40B\uE40C\uE40D\uE40E\uE40F\uE410\uE411"+
"\uE412\uE413\uE414\uE415\uE416\uE417\uE418\uE419"+
"\uE41A\uE41B\uE41C\uE41D\uE41E\uE41F\uE420\uE421"+
"\uE422\uE423\uE424\uE425\uE426\uE427\uE428\uE429"+
"\uE42A\uE42B\uE42C\uE42D\uE42E\uE42F\uE430\uE431"+
"\uE432\uE433\uE434\uE435\uE436\uE437\uE438\uE439"+
"\uE43A\uE43B\uE43C\uE43D\uE43E\uE43F\uE440\uE441"+
"\uE442\uE443\uE444\uE445\uE446\uE447\uE448\uE449"+
"\uE44A\uE44B\uE44C\uE44D\uE44E\uE44F\uE450\uE451"+
"\uE452\uE453\uE454\uE455\uE456\uE457\uE458\uE459"+
"\uE45A\uE45B\uE45C\uE45D\uE45E\uE45F\uE460\uE461"+
"\uE462\uE463\uE464\uE465\uE466\uE467\uE468\uE469"+
"\uE46A\uE46B\uE46C\uE46D\uE46E\uE46F\uE470\uE471"+
"\uE472\uE473\uE474\uE475\uE476\uE477\uE478\uE479"+
"\uE47A\uE47B\uE47C\uE47D\uE47E\uE47F\uE480\uE481"+
"\uE482\uE483\uE484\uE485\uE486\uE487\uE488\uE489"+
"\uE48A\uE48B\uE48C\uE48D\uE48E\uE48F\uE490\uE491"+
"\uE492\uE493\uE494\uE495\uE496\uE497\uE498\uE499"+
"\uE49A\uE49B\uE49C\uE49D\uE49E\uE49F\uE4A0\uE4A1"+
"\uE4A2\uE4A3\uE4A4\uE4A5\uE4A6\uE4A7\uE4A8\uE4A9"+
"\uE4AA\uE4AB\uE4AC\uE4AD\uE4AE\uE4AF\uE4B0\uE4B1"+
"\uE4B2\uE4B3\uE4B4\uE4B5\uE4B6\uE4B7\uE4B8\uE4B9"+
"\uE4BA\uE4BB\uE4BC\uE4BD\uE4BE\uE4BF\uE4C0\uE4C1"+
"\uE4C2\uE4C3\uE4C4\uE4C5\uE4C6\uE4C7\uE4C8\uE4C9"+
"\uE4CA\uE4CB\uE4CC\uE4CD\uE4CE\uE4CF\uE4D0\uE4D1"+
"\uE4D2\uE4D3\uE4D4\uE4D5\uE4D6\uE4D7\uE4D8\uE4D9"+
"\uE4DA\uE4DB\uE4DC\uE4DD\uE4DE\uE4DF\uE4E0\uE4E1"+
"\uE4E2\uE4E3\uE4E4\uE4E5\uE4E6\uE4E7\uE4E8\uE4E9"+
"\uE4EA\uE4EB\uE4EC\uE4ED\uE4EE\uE4EF\uE4F0\uE4F1"+
"\uE4F2\uE4F3\uE4F4\uE4F5\uE4F6\uE4F7\uE4F8\uE4F9"+
"\uE4FA\uE4FB\uE4FC\uE4FD\uE4FE\uE4FF\uE500\uE501"+
"\uE502\uE503\uE504\uE505\uE506\uE507\uE508\uE509"+
"\uE50A\uE50B\uE50C\uE50D\uE50E\uE50F\uE510\uE511"+
"\uE512\uE513\uE514\uE515\uE516\uE517\uE518\uE519"+
"\uE51A\uE51B\uE51C\uE51D\uE51E\uE51F\uE520\uE521"+
"\uE522\uE523\uE524\uE525\uE526\uE527\uE528\uE529"+
"\uE52A\uE52B\uE52C\uE52D\uE52E\uE52F\uE530\uE531"+
"\uE532\uE533\uE534\uE535\uE536\uE537\uE538\uE539"+
"\uE53A\uE53B\uE53C\uE53D\uE53E\uE53F\uE540\uE541"+
"\uE542\uE543\uE544\uE545\uE546\uE547\uE548\uE549"+
"\uE54A\uE54B\uE54C\uE54D\uE54E\uE54F\uE550\uE551"+
"\uE552\uE553\uE554\uE555\uE556\uE557\uE558\uE559"+
"\uE55A\uE55B\uE55C\uE55D\uE55E\uE55F\uE560\uE561"+
"\uE562\uE563\uE564\uE565\uE566\uE567\uE568\uE569"+
"\uE56A\uE56B\uE56C\uE56D\uE56E\uE56F\uE570\uE571"+
"\uE572\uE573\uE574\uE575\uE576\uE577\uE578\uE579"+
"\uE57A\uE57B\uE57C\uE57D\uE57E\uE57F\uE580\uE581"+
"\uE582\uE583\uE584\uE585\uE586\uE587\uE588\uE589"+
"\uE58A\uE58B\uE58C\uE58D\uE58E\uE58F\uE590\uE591"+
"\uE592\uE593\uE594\uE595\uE596\uE597\uE598\uE599"+
"\uE59A\uE59B\uE59C\uE59D\uE59E\uE59F\uE5A0\uE5A1"+
"\uE5A2\uE5A3\uE5A4\uE5A5\uE5A6\uE5A7\uE5A8\uE5A9"+
"\uE5AA\uE5AB\uE5AC\uE5AD\uE5AE\uE5AF\uE5B0\uE5B1"+
"\uE5B2\uE5B3\uE5B4\uE5B5\uE5B6\uE5B7\uE5B8\uE5B9"+
"\uE5BA\uE5BB\uE5BC\uE5BD\uE5BE\uE5BF\uE5C0\uE5C1"+
"\uE5C2\uE5C3\uE5C4\uE5C5\uE5C6\uE5C7\uE5C8\uE5C9"+
"\uE5CA\uE5CB\uE5CC\uE5CD\uE5CE\uE5CF\uE5D0\uE5D1"+
"\uE5D2\uE5D3\uE5D4\uE5D5\uE5D6\uE5D7\uE5D8\uE5D9"+
"\uE5DA\uE5DB\uE5DC\uE5DD\uE5DE\uE5DF\uE5E0\uE5E1"+
"\uE5E2\uE5E3\uE5E4\uE5E5\uE5E6\uE5E7\uE5E8\uE5E9"+
"\uE5EA\uE5EB\uE5EC\uE5ED\uE5EE\uE5EF\uE5F0\uE5F1"+
"\uE5F2\uE5F3\uE5F4\uE5F5\uE5F6\uE5F7\uE5F8\uE5F9"+
"\uE5FA\uE5FB\uE5FC\uE5FD\uE5FE\uE5FF\uE600\uE601"+
"\uE602\uE603\uE604\uE605\uE606\uE607\uE608\uE609"+
"\uE60A\uE60B\uE60C\uE60D\uE60E\uE60F\uE610\uE611"+
"\uE612\uE613\uE614\uE615\uE616\uE617\uE618\uE619"+
"\uE61A\uE61B\uE61C\uE61D\uE61E\uE61F\uE620\uE621"+
"\uE622\uE623\uE624\uE625\uE626\uE627\uE628\uE629"+
"\uE62A\uE62B\uE62C\uE62D\uE62E\uE62F\uE630\uE631"+
"\uE632\uE633\uE634\uE635\uE636\uE637\uE638\uE639"+
"\uE63A\uE63B\uE63C\uE63D\uE63E\uE63F\uE640\uE641"+
"\uE642\uE643\uE644\uE645\uE646\uE647\uE648\uE649"+
"\uE64A\uE64B\uE64C\uE64D\uE64E\uE64F\uE650\uE651"+
"\uE652\uE653\uE654\uE655\uE656\uE657\uE658\uE659"+
"\uE65A\uE65B\uE65C\uE65D\uE65E\uE65F\uE660\uE661"+
"\uE662\uE663\uE664\uE665\uE666\uE667\uE668\uE669"+
"\uE66A\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671"+
"\uE672\uE673\uE674\uE675\uE676\uE677\uE678\uE679"+
"\uE67A\uE67B\uE67C\uE67D\uE67E\uE67F\uE680\uE681"+
"\uE682\uE683\uE684\uE685\uE686\uE687\uE688\uE689"+
"\uE68A\uE68B\uE68C\uE68D\uE68E\uE68F\uE690\uE691"+
"\uE692\uE693\uE694\uE695\uE696\uE697\uE698\uE699"+
"\uE69A\uE69B\uE69C\uE69D\uE69E\uE69F\uE6A0\uE6A1"+
"\uE6A2\uE6A3\uE6A4\uE6A5\uE6A6\uE6A7\uE6A8\uE6A9"+
"\uE6AA\uE6AB\uE6AC\uE6AD\uE6AE\uE6AF\uE6B0\uE6B1"+
"\uE6B2\uE6B3\uE6B4\uE6B5\uE6B6\uE6B7\uE6B8\uE6B9"+
"\uE6BA\uE6BB\uE6BC\uE6BD\uE6BE\uE6BF\uE6C0\uE6C1"+
"\uE6C2\uE6C3\uE6C4\uE6C5\uE6C6\uE6C7\uE6C8\uE6C9"+
"\uE6CA\uE6CB\uE6CC\uE6CD\uE6CE\uE6CF\uE6D0\uE6D1"+
"\uE6D2\uE6D3\uE6D4\uE6D5\uE6D6\uE6D7\uE6D8\uE6D9"+
"\uE6DA\uE6DB\uE6DC\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1"+
"\uE6E2\uE6E3\uE6E4\uE6E5\uE6E6\uE6E7\uE6E8\uE6E9"+
"\uE6EA\uE6EB\uE6EC\uE6ED\uE6EE\uE6EF\uE6F0\uE6F1"+
"\uE6F2\uE6F3\uE6F4\uE6F5\uE6F6\uE6F7\uE6F8\uE6F9"+
"\uE6FA\uE6FB\uE6FC\uE6FD\uE6FE\uE6FF\uE700\uE701"+
"\uE702\uE703\uE704\uE705\uE706\uE707\uE708\uE709"+
"\uE70A\uE70B\uE70C\uE70D\uE70E\uE70F\uE710\uE711"+
"\uE712\uE713\uE714\uE715\uE716\uE717\uE718\uE719"+
"\uE71A\uE71B\uE71C\uE71D\uE71E\uE71F\uE720\uE721"+
"\uE722\uE723\uE724\uE725\uE726\uE727\uE728\uE729"+
"\uE72A\uE72B\uE72C\uE72D\uE72E\uE72F\uE730\uE731"+
"\uE732\uE733\uE734\uE735\uE736\uE737\uE738\uE739"+
"\uE73A\uE73B\uE73C\uE73D\uE73E\uE73F\uE740\uE741"+
"\uE742\uE743\uE744\uE745\uE746\uE747\uE748\uE749"+
"\uE74A\uE74B\uE74C\uE74D\uE74E\uE74F\uE750\uE751"+
"\uE752\uE753\uE754\uE755\uE756\uE757";
private final static short _index1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
private final static String _index2[] = {
_innerIndex0
};
}