public boolean incrementToken()

in lucene/analysis/common/src/java/org/apache/lucene/analysis/sr/SerbianNormalizationFilter.java [41:170]


  public boolean incrementToken() throws IOException {
    if (input.incrementToken()) {
      char[] buffer = termAtt.buffer();
      int length = termAtt.length();
      for (int i = 0; i < length; i++) {
        final char c = buffer[i];
        switch (c) {
          case 'а':
            buffer[i] = 'a';
            break;
          case 'б':
            buffer[i] = 'b';
            break;
          case 'в':
            buffer[i] = 'v';
            break;
          case 'г':
            buffer[i] = 'g';
            break;
          case 'д':
            buffer[i] = 'd';
            break;
          case 'ђ':
          case 'đ':
            buffer = termAtt.resizeBuffer(1 + length);
            if (i < length) {
              System.arraycopy(buffer, i, buffer, i + 1, (length - i));
            }
            buffer[i] = 'd';
            buffer[++i] = 'j';
            length++;
            break;
          case 'е':
            buffer[i] = 'e';
            break;
          case 'ж':
          case 'з':
          case 'ž':
            buffer[i] = 'z';
            break;
          case 'и':
            buffer[i] = 'i';
            break;
          case 'ј':
            buffer[i] = 'j';
            break;
          case 'к':
            buffer[i] = 'k';
            break;
          case 'л':
            buffer[i] = 'l';
            break;
          case 'љ':
            buffer = termAtt.resizeBuffer(1 + length);
            if (i < length) {
              System.arraycopy(buffer, i, buffer, i + 1, (length - i));
            }
            buffer[i] = 'l';
            buffer[++i] = 'j';
            length++;
            break;
          case 'м':
            buffer[i] = 'm';
            break;
          case 'н':
            buffer[i] = 'n';
            break;
          case 'њ':
            buffer = termAtt.resizeBuffer(1 + length);
            if (i < length) {
              System.arraycopy(buffer, i, buffer, i + 1, (length - i));
            }
            buffer[i] = 'n';
            buffer[++i] = 'j';
            length++;
            break;
          case 'о':
            buffer[i] = 'o';
            break;
          case 'п':
            buffer[i] = 'p';
            break;
          case 'р':
            buffer[i] = 'r';
            break;
          case 'с':
            buffer[i] = 's';
            break;
          case 'т':
            buffer[i] = 't';
            break;
          case 'ћ':
          case 'ц':
          case 'ч':
          case 'č':
          case 'ć':
            buffer[i] = 'c';
            break;
          case 'у':
            buffer[i] = 'u';
            break;
          case 'ф':
            buffer[i] = 'f';
            break;
          case 'х':
            buffer[i] = 'h';
            break;
          case 'џ':
            buffer = termAtt.resizeBuffer(1 + length);
            if (i < length) {
              System.arraycopy(buffer, i, buffer, i + 1, (length - i));
            }
            buffer[i] = 'd';
            buffer[++i] = 'z';
            length++;
            break;
          case 'ш':
          case 'š':
            buffer[i] = 's';
            break;
          default:
            break;
        }
      }
      termAtt.setLength(length);
      return true;
    } else {
      return false;
    }
  }