Package com.ibm.icu.charset
Class CharsetDecoderICU
java.lang.Object
java.nio.charset.CharsetDecoder
com.ibm.icu.charset.CharsetDecoderICU
- Direct Known Subclasses:
CharsetASCII.CharsetDecoderASCII
,CharsetBOCU1.CharsetDecoderBOCU
,CharsetCompoundText.CharsetDecoderCompoundText
,CharsetHZ.CharsetDecoderHZ
,CharsetISCII.CharsetDecoderISCII
,CharsetISO2022.CharsetDecoderISO2022CN
,CharsetISO2022.CharsetDecoderISO2022JP
,CharsetISO2022.CharsetDecoderISO2022KR
,CharsetLMBCS.CharsetDecoderLMBCS
,CharsetMBCS.CharsetDecoderMBCS
,CharsetSCSU.CharsetDecoderSCSU
,CharsetUTF16.CharsetDecoderUTF16
,CharsetUTF32.CharsetDecoderUTF32
,CharsetUTF7.CharsetDecoderUTF7
,CharsetUTF8.CharsetDecoderUTF8
An abstract class that provides framework methods of decoding operations for concrete
subclasses.
In the future this class will contain API that will implement converter semantics of ICU4C.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) char[]
(package private) int
(package private) int
private final ByteBuffer
protected static final int
Deprecated.This API is ICU internal only.(package private) char[]
(package private) int
private boolean
(package private) int
private CharsetCallback.Decoder
private CharsetCallback.Decoder
(package private) byte[]
(package private) int
(package private) int
(package private) int
(package private) CharsetCallback.Decoder
(package private) byte[]
(package private) int
(package private) Object
(package private) int
(package private) int
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
copy
(byte[] src, int srcOffset, char[] dst, int dstOffset, int length) (package private) final CoderResult
decode
(ByteBuffer source, CharBuffer target, IntBuffer offsets, boolean flush) protected CoderResult
decodeLoop
(ByteBuffer in, CharBuffer out) Decodes one or more bytes.(package private) abstract CoderResult
decodeLoop
(ByteBuffer in, CharBuffer out, IntBuffer offsets, boolean flush) private static CharsetCallback.Decoder
getCallback
(CodingErrorAction action) protected final CoderResult
implFlush
(CharBuffer out) Flushes any characters saved in the converter's internal buffer and resets the converter.protected final void
implOnMalformedInput
(CodingErrorAction newAction) Sets the action to be taken if an illegal sequence is encounteredprotected final void
implOnUnmappableCharacter
(CodingErrorAction newAction) Sets the action to be taken if an illegal sequence is encounteredprotected void
Resets the to Unicode mode of converter(package private) final boolean
(package private) static final boolean
Fallback is currently always used by icu4j decoders.(package private) static final boolean
isToUUseFallback
(boolean iUseFallback) Fallback is currently always used by icu4j decoders.final float
Returns the maxBytesPerChar value for the Charset that created this decoder.final void
setToUCallback
(CoderResult err, CharsetCallback.Decoder newCallback, Object newContext) Sets the callback encoder method and context to be used if an illegal sequence is encountered.(package private) int
(package private) final CoderResult
toUnicodeWithCallback
(ByteBuffer source, CharBuffer target, IntBuffer offsets, boolean flush) (package private) static final CoderResult
toUWriteUChars
(CharsetDecoderICU cnv, char[] ucharsArray, int ucharsBegin, int length, CharBuffer target, IntBuffer offsets, int sourceIndex) Methods inherited from class java.nio.charset.CharsetDecoder
averageCharsPerByte, charset, decode, decode, detectedCharset, flush, implReplaceWith, isAutoDetecting, isCharsetDetected, malformedInputAction, maxCharsPerByte, onMalformedInput, onUnmappableCharacter, replacement, replaceWith, reset, unmappableCharacterAction
-
Field Details
-
toUnicodeStatus
int toUnicodeStatus -
toUBytesArray
byte[] toUBytesArray -
toUBytesBegin
int toUBytesBegin -
toULength
int toULength -
charErrorBufferArray
char[] charErrorBufferArray -
charErrorBufferLength
int charErrorBufferLength -
charErrorBufferBegin
int charErrorBufferBegin -
invalidCharBuffer
char[] invalidCharBuffer -
invalidCharLength
int invalidCharLength -
EXT_MAX_BYTES
Deprecated.This API is ICU internal only.Maximum number of indexed bytes- See Also:
-
preToUArray
byte[] preToUArray -
preToUBegin
int preToUBegin -
preToULength
int preToULength -
preToUFirstLength
int preToUFirstLength -
mode
int mode -
toUContext
Object toUContext -
onUnmappableCharacter
-
onMalformedInput
-
toCharErrorBehaviour
CharsetCallback.Decoder toCharErrorBehaviour -
malformedInputCalled
private boolean malformedInputCalled -
unmappableCharacterCalled
private boolean unmappableCharacterCalled -
EMPTY
-
-
Constructor Details
-
CharsetDecoderICU
CharsetDecoderICU(CharsetICU cs)
-
-
Method Details
-
isFallbackUsed
final boolean isFallbackUsed() -
isToUUseFallback
static final boolean isToUUseFallback()Fallback is currently always used by icu4j decoders. -
isToUUseFallback
static final boolean isToUUseFallback(boolean iUseFallback) Fallback is currently always used by icu4j decoders. -
implOnMalformedInput
Sets the action to be taken if an illegal sequence is encountered- Overrides:
implOnMalformedInput
in classCharsetDecoder
- Parameters:
newAction
- action to be taken- Throws:
IllegalArgumentException
-
implOnUnmappableCharacter
Sets the action to be taken if an illegal sequence is encountered- Overrides:
implOnUnmappableCharacter
in classCharsetDecoder
- Parameters:
newAction
- action to be taken- Throws:
IllegalArgumentException
-
setToUCallback
public final void setToUCallback(CoderResult err, CharsetCallback.Decoder newCallback, Object newContext) Sets the callback encoder method and context to be used if an illegal sequence is encountered. You would normally call this twice to set both the malform and unmappable error. In this case, newContext should remain the same since using a different newContext each time will negate the last one used.- Parameters:
err
- CoderResultnewCallback
- CharsetCallback.EncodernewContext
- Object
-
getCallback
-
implFlush
Flushes any characters saved in the converter's internal buffer and resets the converter.- Overrides:
implFlush
in classCharsetDecoder
- Parameters:
out
- action to be taken- Returns:
- result of flushing action and completes the decoding all input. Returns CoderResult.UNDERFLOW if the action succeeds.
-
implReset
protected void implReset()Resets the to Unicode mode of converter- Overrides:
implReset
in classCharsetDecoder
-
decodeLoop
Decodes one or more bytes. The default behaviour of the converter is stop and report if an error in input stream is encountered. To set different behaviour use @see CharsetDecoder.onMalformedInput() This method allows a buffer by buffer conversion of a data stream. The state of the conversion is saved between calls to convert. Among other things, this means multibyte input sequences can be split between calls. If a call to convert results in an Error, the conversion may be continued by calling convert again with suitably modified parameters.All conversions should be finished with a call to the flush method.- Specified by:
decodeLoop
in classCharsetDecoder
- Parameters:
in
- buffer to decodeout
- buffer to populate with decoded result- Returns:
- Result of decoding action. Returns CoderResult.UNDERFLOW if the decoding action succeeds or more input is needed for completing the decoding action.
-
decodeLoop
-
decode
-
toUnicodeWithCallback
final CoderResult toUnicodeWithCallback(ByteBuffer source, CharBuffer target, IntBuffer offsets, boolean flush) -
toUCountPending
int toUCountPending() -
copy
private void copy(byte[] src, int srcOffset, char[] dst, int dstOffset, int length) -
toUWriteUChars
static final CoderResult toUWriteUChars(CharsetDecoderICU cnv, char[] ucharsArray, int ucharsBegin, int length, CharBuffer target, IntBuffer offsets, int sourceIndex) -
maxBytesPerChar
public final float maxBytesPerChar()Returns the maxBytesPerChar value for the Charset that created this decoder.- Returns:
- maxBytesPerChar
-