public void deleteObligation ( final Obligation obligation , int basicBlockId ) throws ObligationAcquiredOrReleasedInLoopException { Map < ObligationSet , State > updatedStateMap = new HashMap <> ( ) ; for ( Iterator < State > i = stateIterator ( ) ; i . hasNext ( ) ; ) { State state = i . next ( ) ; checkCircularity ( state , obligation , basicBlockId ) ; ObligationSet obligationSet = state . getObligationSet ( ) ; obligationSet . remove ( obligation ) ; if ( ! obligationSet . isEmpty ( ) ) { updatedStateMap . put ( obligationSet , state ) ; } } replaceMap ( updatedStateMap ) ; }
Remove an Obligation from every State in the StateSet .