public Utf8ByteOffsetConverter()

in src/main/java/org/apache/uima/json/jsoncas2/encoding/Utf8ByteOffsetConverter.java [32:60]


  public Utf8ByteOffsetConverter(String aString) {
    if (aString == null) {
      internalToExternal = null;
      externalToInternal = null;
      return;
    }

    int byteCount = aString.getBytes(UTF_8).length;
    externalToInternal = new int[byteCount + 1];
    fill(externalToInternal, UNMAPPED);

    int codeUnitCount = aString.length();
    internalToExternal = new int[codeUnitCount + 1];
    fill(internalToExternal, UNMAPPED);

    int cbi = 0;
    int cui = 0;
    while (cui < aString.length()) {
      externalToInternal[cbi] = cui;
      internalToExternal[cui] = cbi;

      int cp = aString.codePointAt(cui);
      cbi += String.valueOf(toChars(cp)).getBytes(UTF_8).length;
      cui += charCount(cp);
    }

    externalToInternal[cbi] = cui;
    internalToExternal[cui] = cbi;
  }