@Override
    @Deprecated
    protected void handleTransliterate(Replaceable text,
                                       Position index, boolean incremental) {
        /* We keep start and limit fixed the entire time,
         * relative to the text -- limit may move numerically if text is
         * inserted or removed.  The cursor moves from start to limit, with
         * replacements happening under it.
         *
         * Example: rules 1. ab>x|y
         *                2. yc>z
         *
         * |eabcd   start - no match, advance cursor
         * e|abcd   match rule 1 - change text & adjust cursor
         * ex|ycd   match rule 2 - change text & adjust cursor
         * exz|d    no match, advance cursor
         * exzd|    done
         */

        /* A rule like
         *   a>b|a
         * creates an infinite loop. To prevent that, we put an arbitrary
         * limit on the number of iterations that we take, one that is
         * high enough that any reasonable rules are ok, but low enough to
         * prevent a server from hanging.  The limit is 16 times the
         * number of characters n, unless n is so large that 16n exceeds a
         * uint32_t.
         */
        synchronized(data)  {
            int loopCount = 0;
            int loopLimit = (index.limit - index.start) << 4;
            if (loopLimit < 0) {
                loopLimit = 0x7FFFFFFF;
            }

            while (index.start < index.limit &&
                    loopCount <= loopLimit &&
                    data.ruleSet.transliterate(text, index, incremental)) {
                ++loopCount;
            }
        }
    }
@ Override @ Deprecated protected void handleTransliterate ( Replaceable text , Position index , boolean incremental ) { synchronized ( data ) { int loopCount = 0 ; int loopLimit = ( index . limit - index . start ) << 4 ; if ( loopLimit < 0 ) { loopLimit = 0x7FFFFFFF ; } while ( index . start < index . limit && loopCount <= loopLimit && data . ruleSet . transliterate ( text , index , incremental ) ) { ++ loopCount ; } } }
Implements {@link Transliterator#handleTransliterate}.
@deprecated This API is ICU internal only.
@hide draft / provisional / internal are hidden on Android