src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java
Print this page
@@ -61,12 +61,12 @@
public CharsetEncoder newEncoder() {
return new Encoder(this);
}
- private static class Decoder extends CharsetDecoder
- implements ArrayDecoder {
+ private static class Decoder extends CharsetDecoder {
+
private Decoder(Charset cs) {
super(cs, 1.0f, 1.0f);
}
private CoderResult decodeArrayLoop(ByteBuffer src,
@@ -122,27 +122,14 @@
if (src.hasArray() && dst.hasArray())
return decodeArrayLoop(src, dst);
else
return decodeBufferLoop(src, dst);
}
-
- public int decode(byte[] src, int sp, int len, char[] dst) {
- if (len > dst.length)
- len = dst.length;
- int dp = 0;
- while (dp < len)
- dst[dp++] = (char)(src[sp++] & 0xff);
- return dp;
}
- public boolean isASCIICompatible() {
- return true;
- }
- }
+ private static class Encoder extends CharsetEncoder {
- private static class Encoder extends CharsetEncoder
- implements ArrayEncoder {
private Encoder(Charset cs) {
super(cs, 1.0f, 1.0f);
}
public boolean canEncode(char c) {
@@ -269,41 +256,7 @@
if (src.hasArray() && dst.hasArray())
return encodeArrayLoop(src, dst);
else
return encodeBufferLoop(src, dst);
}
-
- private byte repl = (byte)'?';
- protected void implReplaceWith(byte[] newReplacement) {
- repl = newReplacement[0];
- }
-
- public int encode(char[] src, int sp, int len, byte[] dst) {
- int dp = 0;
- int slen = Math.min(len, dst.length);
- int sl = sp + slen;
- while (sp < sl) {
- int ret = encodeISOArray(src, sp, dst, dp, slen);
- sp = sp + ret;
- dp = dp + ret;
- if (ret != slen) {
- char c = src[sp++];
- if (Character.isHighSurrogate(c) && sp < sl &&
- Character.isLowSurrogate(src[sp])) {
- if (len > dst.length) {
- sl++;
- len--;
- }
- sp++;
- }
- dst[dp++] = repl;
- slen = Math.min((sl - sp), (dst.length - dp));
- }
- }
- return dp;
- }
-
- public boolean isASCIICompatible() {
- return true;
- }
}
}