private void switchToForward ( ) { assert ( state == State . ITER_CHECK_BWD || ( state == State . ITER_IN_FCD_SEGMENT && pos == limit ) || ( state . compareTo ( State . IN_NORM_ITER_AT_LIMIT ) >= 0 && pos == normalized . length ( ) ) ) ; if ( state == State . ITER_CHECK_BWD ) { // Turn around from backward checking. start = pos = iter . getIndex ( ) ; if ( pos == limit ) { state = State . ITER_CHECK_FWD ; // Check forward. } else { // pos < limit state = State . ITER_IN_FCD_SEGMENT ; // Stay in FCD segment. } } else { // Reached the end of the FCD segment. if ( state == State . ITER_IN_FCD_SEGMENT ) { // The input text segment is FCD, extend it forward. } else { // The input text segment needed to be normalized. // Switch to checking forward from it. if ( state == State . IN_NORM_ITER_AT_START ) { iter . moveIndex ( limit - start ) ; } start = limit ; } state = State . ITER_CHECK_FWD ; } }
Switches to forward checking if possible .