public OrderingList < S > mergeRemainderOrdering ( OrderingScore < S > other ) { OrderingList < S > thisRemainderOrdering = getRemainderOrdering ( ) ; if ( this == other ) { return thisRemainderOrdering ; } OrderingList < S > otherRemainderOrdering = other . getRemainderOrdering ( ) ; // Choose the longer list. if ( thisRemainderOrdering . size ( ) == 0 ) { return otherRemainderOrdering ; } else { if ( otherRemainderOrdering . size ( ) == 0 ) { return thisRemainderOrdering ; } else if ( thisRemainderOrdering . size ( ) >= otherRemainderOrdering . size ( ) ) { return thisRemainderOrdering ; } else { return otherRemainderOrdering ; } } }
Merges the remainder orderings of this score with the one given . Call canMergeRemainderOrdering first to verify if the merge makes any sense .