code: @Override
      public int next() {
          // if we have cached break positions and we're still in the range
          // covered by them, just move one step forward in the cache
          if (fCachedBreakPositions != null) {
              if (fPositionInCache < fCachedBreakPositions.length - 1) {
                  ++fPositionInCache;
                  int pos = fCachedBreakPositions[fPositionInCache];
                  fText.setIndex(pos);
                  return pos;
              }
              else {
                  reset();
              }
          }
  
          int startPos = current();
          fDictionaryCharCount = 0;
          int result = handleNext(fRData.fFTable);
          if (fDictionaryCharCount > 0) {
              result = checkDictionary(startPos, result, false);
          }
          return result;
      }
docs: Advances the iterator to the next boundary position.
  @return The position of the first boundary after this one.