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

public abstract class CharsetDecoderICU extends CharsetDecoder
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 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 protected static final int 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

      private CharsetCallback.Decoder onUnmappableCharacter
    • onMalformedInput

      private CharsetCallback.Decoder onMalformedInput
    • toCharErrorBehaviour

      CharsetCallback.Decoder toCharErrorBehaviour
    • malformedInputCalled

      private boolean malformedInputCalled
    • unmappableCharacterCalled

      private boolean unmappableCharacterCalled
    • EMPTY

      private final ByteBuffer 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

      protected final void implOnMalformedInput(CodingErrorAction newAction)
      Sets the action to be taken if an illegal sequence is encountered
      Overrides:
      implOnMalformedInput in class CharsetDecoder
      Parameters:
      newAction - action to be taken
      Throws:
      IllegalArgumentException
    • implOnUnmappableCharacter

      protected final void implOnUnmappableCharacter(CodingErrorAction newAction)
      Sets the action to be taken if an illegal sequence is encountered
      Overrides:
      implOnUnmappableCharacter in class CharsetDecoder
      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 - CoderResult
      newCallback - CharsetCallback.Encoder
      newContext - Object
    • getCallback

      private static CharsetCallback.Decoder getCallback(CodingErrorAction action)
    • implFlush

      protected final CoderResult implFlush(CharBuffer out)
      Flushes any characters saved in the converter's internal buffer and resets the converter.
      Overrides:
      implFlush in class CharsetDecoder
      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 class CharsetDecoder
    • decodeLoop

      protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out)
      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 class CharsetDecoder
      Parameters:
      in - buffer to decode
      out - 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

      abstract CoderResult decodeLoop(ByteBuffer in, CharBuffer out, IntBuffer offsets, boolean flush)
    • decode

      final CoderResult decode(ByteBuffer source, CharBuffer target, IntBuffer offsets, boolean flush)
    • 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