/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* 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.
*/
/*
*/
public class EUC_JP
extends Charset
implements HistoricallyNamedCharset
{
public EUC_JP() {
}
return "EUC_JP";
}
|| (cs instanceof JIS_X_0201)
|| (cs instanceof JIS_X_0208)
|| (cs instanceof JIS_X_0212)
}
return new Decoder(this);
}
// Need to force the replacement byte to 0x3f
// because JIS_X_0208_Encoder defines its own
// alternative 2 byte substitution to permit it
// to exist as a self-standing Encoder
byte[] replacementBytes = { (byte)0x3f };
}
implements DelegatableDecoder {
private static final short[] j0208Index1 =
super(cs);
start = 0xa1;
end = 0xfe;
}
}
if (byte1 == 0x8e) {
}
// Fix for bug 4121358 - similar fix for bug 4117820 put
// into ByteToCharDoubleByte.getUnicode()
return REPLACE_CHAR;
}
{
int inputSize = 0;
try {
inputSize = 1;
outputChar = (char)b1;
}
else { // Multibyte char
return CoderResult.UNDERFLOW;
inputSize += 2;
} else {
// JIS0208
return CoderResult.UNDERFLOW;
inputSize++;
}
}
}
return CoderResult.OVERFLOW;
}
return CoderResult.UNDERFLOW;
} finally {
}
}
{
int inputSize = 0;
try {
while (src.hasRemaining()) {
inputSize = 1;
outputChar = (char)b1;
} else { // Multibyte char
return CoderResult.UNDERFLOW;
inputSize += 2;
} else {
// JIS0208
return CoderResult.UNDERFLOW;
inputSize++;
}
}
if (outputChar == REPLACE_CHAR) {
}
return CoderResult.OVERFLOW;
}
return CoderResult.UNDERFLOW;
} finally {
}
}
// Make some protected methods public for use by JISAutoDetect
else
}
public void implReset() {
super.implReset();
}
}
}
private static final short[] j0208Index1 =
}
public boolean canEncode(char c) {
byte[] encodedBytes = new byte[3];
if (encodeDouble(c) == 0)
return false;
}
return true;
}
byte b;
if (inputChar == 0) {
return 1;
}
return 0;
if (b > 0 && b < 128) {
outputByte[0] = b;
return 1;
}
outputByte[1] = b;
return 2;
}
(ch & 0xff));
if (r != 0)
return r + 0x8080;
if (r == 0)
return r;
return r + 0x8F8080;
}
{
int outputSize = 0;
byte[] outputByte;
byte[] tmpBuf = new byte[3];
try {
outputByte = tmpBuf;
if (Character.isSurrogate(c)) {
return sgp.unmappableResult();
}
int ncode = encodeDouble(c);
if (ncode != 0 ) {
outputSize = 2;
} else {
outputSize = 3;
}
} else {
}
}
return CoderResult.OVERFLOW;
// Put the byte in the output buffer
for (int i = 0; i < outputSize; i++) {
}
sp++;
}
return CoderResult.UNDERFLOW;
} finally {
}
}
{
int outputSize = 0;
byte[] outputByte;
byte[] tmpBuf = new byte[3];
try {
while (src.hasRemaining()) {
outputByte = tmpBuf;
if (Character.isSurrogate(c)) {
return sgp.unmappableResult();
}
int ncode = encodeDouble(c);
if (ncode != 0 ) {
outputSize = 2;
} else {
outputSize = 3;
}
} else {
}
}
return CoderResult.OVERFLOW;
// Put the byte in the output buffer
for (int i = 0; i < outputSize; i++) {
}
mark++;
}
return CoderResult.UNDERFLOW;
} finally {
}
}
{
else
}
}
}