protected Word < I > analyzeInconsistency ( Inconsistency < I > incons ) { int inputIdx = alphabet . getSymbolIndex ( incons . getSymbol ( ) ) ; Row < I > succRow1 = incons . getFirstRow ( ) . getSuccessor ( inputIdx ) ; Row < I > succRow2 = incons . getSecondRow ( ) . getSuccessor ( inputIdx ) ; int numSuffixes = table . getSuffixes ( ) . size ( ) ; for ( int i = 0 ; i < numSuffixes ; i ++ ) { D val1 = table . cellContents ( succRow1 , i ) , val2 = table . cellContents ( succRow2 , i ) ; if ( ! Objects . equals ( val1 , val2 ) ) { I sym = alphabet . getSymbol ( inputIdx ) ; Word < I > suffix = table . getSuffixes ( ) . get ( i ) ; return suffix . prepend ( sym ) ; } } throw new IllegalArgumentException ( "Bogus inconsistency" ) ; }
Analyzes an inconsistency . This analysis consists in determining the column in which the two successor rows differ .