62 |
*/ |
*/ |
63 |
public abstract class Charset implements Comparable |
public abstract class Charset implements Comparable |
64 |
{ |
{ |
65 |
private static CharsetEncoder cachedEncoder; |
private CharsetEncoder cachedEncoder; |
66 |
private static CharsetDecoder cachedDecoder; |
private CharsetDecoder cachedDecoder; |
67 |
|
|
68 |
/** |
/** |
69 |
* Charset providers. |
* Charset providers. |
70 |
*/ |
*/ |
71 |
private static CharsetProvider[] providers; |
private static CharsetProvider[] providers; |
72 |
|
|
|
static |
|
|
{ |
|
|
synchronized (Charset.class) |
|
|
{ |
|
|
cachedEncoder = null; |
|
|
cachedDecoder = null; |
|
|
} |
|
|
} |
|
|
|
|
73 |
private final String canonicalName; |
private final String canonicalName; |
74 |
private final String[] aliases; |
private final String[] aliases; |
75 |
|
|
83 |
checkName (aliases[i]); |
checkName (aliases[i]); |
84 |
} |
} |
85 |
|
|
86 |
|
cachedEncoder = null; |
87 |
|
cachedDecoder = null; |
88 |
this.canonicalName = canonicalName; |
this.canonicalName = canonicalName; |
89 |
this.aliases = aliases; |
this.aliases = aliases; |
90 |
} |
} |
289 |
cachedEncoder = newEncoder () |
cachedEncoder = newEncoder () |
290 |
.onMalformedInput (CodingErrorAction.REPLACE) |
.onMalformedInput (CodingErrorAction.REPLACE) |
291 |
.onUnmappableCharacter (CodingErrorAction.REPLACE); |
.onUnmappableCharacter (CodingErrorAction.REPLACE); |
292 |
} |
} else |
293 |
|
cachedEncoder.reset(); |
294 |
return cachedEncoder.encode (cb); |
return cachedEncoder.encode (cb); |
295 |
} |
} |
296 |
} |
} |
320 |
cachedDecoder = newDecoder () |
cachedDecoder = newDecoder () |
321 |
.onMalformedInput (CodingErrorAction.REPLACE) |
.onMalformedInput (CodingErrorAction.REPLACE) |
322 |
.onUnmappableCharacter (CodingErrorAction.REPLACE); |
.onUnmappableCharacter (CodingErrorAction.REPLACE); |
323 |
} |
} else |
324 |
|
cachedDecoder.reset(); |
325 |
|
|
326 |
return cachedDecoder.decode (bb); |
return cachedDecoder.decode (bb); |
327 |
} |
} |