public Utf32CodepointOffsetConverter()

in src/main/java/org/apache/uima/json/jsoncas2/encoding/Utf32CodepointOffsetConverter.java [29:57]


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

    int codePointCount = aString.codePointCount(0, aString.length());
    externalToInternal = new int[codePointCount + 1];
    fill(externalToInternal, UNMAPPED);

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

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

      cpi++;
      cui += Character.charCount(cp);
    }

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