/** * {@inheritDoc} * @stable ICU 4.4 */ @Override public boolean hasBoundaryBefore(int c) { return !set.contains(c) || norm2.hasBoundaryBefore(c); }
private int readFromIoNormalizeUptoBoundary() { // if there's no buffer to normalize, return 0 if (inputBuffer.length() <= 0) { return 0; } boolean foundBoundary = false; final int bufLen = inputBuffer.length(); while (checkedInputBoundary <= bufLen - 1) { int charLen = Character.charCount(inputBuffer.codePointAt(checkedInputBoundary)); checkedInputBoundary += charLen; if (checkedInputBoundary < bufLen && normalizer.hasBoundaryBefore(inputBuffer .codePointAt(checkedInputBoundary))) { foundBoundary = true; break; } } if (!foundBoundary && checkedInputBoundary >= bufLen && inputFinished) { foundBoundary = true; checkedInputBoundary = bufLen; } if (!foundBoundary) { return 0; } return normalizeInputUpto(checkedInputBoundary); }
private boolean previousNormalize() { clearBuffer(); nextIndex=currentIndex; text.setIndex(currentIndex); StringBuilder segment=new StringBuilder(); int c; while((c=text.previousCodePoint())>=0) { if(c<=0xffff) { segment.insert(0, (char)c); } else { segment.insert(0, Character.toChars(c)); } if(norm2.hasBoundaryBefore(c)) { break; } } currentIndex=text.getIndex(); norm2.normalize(segment, buffer); bufferPos=buffer.length(); return buffer.length()!=0; }
int prefix0 = prefix.codePointAt(0); int c = rawBuilder.codePointAt(0); if(!nfc.hasBoundaryBefore(prefix0) || !nfc.hasBoundaryBefore(c)) { setParseError("in 'prefix|str', prefix and str must each start with an NFC boundary"); return;
private boolean nextNormalize() { clearBuffer(); currentIndex=nextIndex; text.setIndex(nextIndex); // Skip at least one character so we make progress. int c=text.nextCodePoint(); if(c<0) { return false; } StringBuilder segment=new StringBuilder().appendCodePoint(c); while((c=text.nextCodePoint())>=0) { if(norm2.hasBoundaryBefore(c)) { text.moveCodePointIndex(-1); break; } segment.appendCodePoint(c); } nextIndex=text.getIndex(); norm2.normalize(segment, buffer); return buffer.length()!=0; }
segment.appendCodePoint(c); start += Character.charCount(c); } while(start < limit && !norm2.hasBoundaryBefore(c = text.char32At(start))); if(start == limit && isIncremental && !norm2.hasBoundaryAfter(c)) {
(((nextCEI.ce_) >>> 32) & 0xFFFF0000L) != 0 && maxLimit >= lastCEI.highIndex_ && nextCEI.highIndex_ > maxLimit && (nfd_.hasBoundaryBefore(codePointAt(targetText, maxLimit)) || nfd_.hasBoundaryAfter(codePointBefore(targetText, maxLimit)));
(((nextCEI.ce_) >>> 32) & 0xFFFF0000L) != 0 && maxLimit >= lastCEI.highIndex_ && nextCEI.highIndex_ > maxLimit && (nfd_.hasBoundaryBefore(codePointAt(targetText, maxLimit)) || nfd_.hasBoundaryAfter(codePointBefore(targetText, maxLimit)));