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;
}