private void setupBranchingEnumerators ( ) { //Getting required sequence of differences (mutations) final byte [ ] bSequence = branchingSequences [ branchingSequenceIndex ] ; //Ensure number of branching enumerators ensureCapacity ( bSequence . length ) ; //Setting up initial branching enumerators byte previous = - 1 , current ; for ( int i = 0 ; i < bSequence . length ; ++ i ) { current = bSequence [ i ] ; boolean autoMove1 = ( previous == 1 && current == 2 ) ; // prevents insertion right after deletion if ( parameters . isGreedy ( ) ) { // prevent some other 'redundant' cases autoMove1 = autoMove1 || ( previous == 2 && current == 1 ) || // prevents deletion right after insertion ( previous == 2 && current == 0 ) ; // prevents mismatch right after insertion } branchingEnumerators [ i ] . setup ( current , autoMove1 ) ; previous = bSequence [ i ] ; } branchingEnumerators [ 0 ] . reset ( 0 , root ) ; lastEnumerator = bSequence . length - 1 ; }
Setts up BranchingEnumerators for current branching sequence