Package org.jcodings

Class MultiByteEncoding

All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
CanBeTrailTableEncoding, EmacsMuleEncoding, EucEncoding, GB18030Encoding, UnicodeEncoding

public abstract class MultiByteEncoding extends AbstractEncoding
  • Field Details

    • EncLen

      protected final int[] EncLen
    • A

      protected static final int A
      See Also:
    • F

      protected static final int F
      See Also:
    • Trans

      protected final int[][] Trans
    • TransZero

      protected final int[] TransZero
  • Constructor Details

    • MultiByteEncoding

      protected MultiByteEncoding(String name, int minLength, int maxLength, int[] EncLen, int[][] Trans, short[] CTypeTable)
  • Method Details

    • length

      public int length(byte c)
      Description copied from class: Encoding
      Returns character length given character head returns 1 for singlebyte encodings or performs direct length table lookup for multibyte ones.
      Specified by:
      length in class Encoding
      Parameters:
      c - Character head Oniguruma equivalent: mbc_enc_len To be deprecated very soon (use length(byte[]bytes, int p, int end) version)
    • missing

      protected final int missing(int n)
    • missing

      protected final int missing(int b, int delta)
    • safeLengthForUptoFour

      protected final int safeLengthForUptoFour(byte[] bytes, int p, int end)
    • lengthForTwoUptoFour

      protected final int lengthForTwoUptoFour(byte[] bytes, int p, int end, int b, int s)
    • lengthForThreeUptoFour

      private int lengthForThreeUptoFour(byte[] bytes, int p, int end, int b, int s)
    • safeLengthForUptoThree

      protected final int safeLengthForUptoThree(byte[] bytes, int p, int end)
    • lengthForTwoUptoThree

      private int lengthForTwoUptoThree(byte[] bytes, int p, int end, int b, int s)
    • lengthForThree

      private int lengthForThree(byte[] bytes, int p, int end, int b, int s)
    • safeLengthForUptoTwo

      protected final int safeLengthForUptoTwo(byte[] bytes, int p, int end)
    • lengthForTwo

      private int lengthForTwo(byte[] bytes, int p, int end, int b, int s)
    • mbnMbcToCode

      protected final int mbnMbcToCode(byte[] bytes, int p, int end)
    • caseMap

      public int caseMap(IntHolder flagP, byte[] bytes, IntHolder pp, int end, byte[] to, int toP, int toEnd)
      Description copied from class: Encoding
      Oniguruma equivalent: case_map
      Specified by:
      caseMap in class Encoding
    • mbnMbcCaseFold

      protected final int mbnMbcCaseFold(int flag, byte[] bytes, IntHolder pp, int end, byte[] lower)
    • mb2CodeToMbcLength

      protected final int mb2CodeToMbcLength(int code)
    • mb4CodeToMbcLength

      protected final int mb4CodeToMbcLength(int code)
    • mb2CodeToMbc

      protected final int mb2CodeToMbc(int code, byte[] bytes, int p)
    • mb4CodeToMbc

      protected final int mb4CodeToMbc(int code, byte[] bytes, int p)
    • mb2IsCodeCType

      protected final boolean mb2IsCodeCType(int code, int ctype)
    • mb4IsCodeCType

      protected final boolean mb4IsCodeCType(int code, int ctype)
    • strLength

      public int strLength(byte[] bytes, int p, int end)
      Specified by:
      strLength in class Encoding
    • strCodeAt

      public int strCodeAt(byte[] bytes, int p, int end, int index)
      Specified by:
      strCodeAt in class Encoding
    • isInRange

      public static boolean isInRange(int code, int from, int to)