edu.umd.cs.findbugs.ba.obl
public class StateSet extends Object
Invariant: no StateSet may contain more than one State with the same ObligationSet.
See Weimer and Necula, Finding and preventing run-time error handling mistakes, OOPSLA 2004.
| Nested Class Summary | |
|---|---|
| interface | StateSet.StateCallback |
| Constructor Summary | |
|---|---|
| StateSet(ObligationFactory factory) | |
| Method Summary | |
|---|---|
| void | addObligation(Obligation obligation)
Add an obligation to every State in the StateSet.
|
| void | applyToAllStates(StateSet.StateCallback callback)
Apply a callback to all States in the StateSet.
|
| void | applyToAllStatesAndUpdateMap(StateSet.StateCallback callback, Map<ObligationSet,State> updatedStateMap)
Apply a callback to all States and replace the
ObligationSet -> State map with the one given
(which is assumed to be updated by the callback.)
|
| void | copyFrom(StateSet other)
Make this StateSet an exact copy of the given StateSet.
|
| Map<ObligationSet,State> | createEmptyMap()
Return a newly allocated Map of ObligationSet to State
that may be passed to applyToAllStatesAndUpdateMap(). |
| void | deleteObligation(Obligation obligation)
Remove an Obligation from every State in the StateSet.
|
| StateSet | duplicate()
Return an exact deep copy of this StateSet.
|
| State | getStateWithObligationSet(ObligationSet obligationSet)
Get the State which has the given ObligationSet.
|
| void | initEntryFact(ObligationFactory factory)
Initialize this object as the entry fact for a method:
a single state with empty obligation set and path.
|
| boolean | isBottom() |
| boolean | isTop() |
| boolean | isValid() |
| void | setBottom() |
| void | setTop() |
| Iterator<State> | stateIterator()
Return an Iterator over the States in the StateSet.
|
Parameters: obligation the obligation to add
Parameters: callback
Parameters: callback the callback updatedStateMap updated map of ObligationSets to States
Parameters: other a StateSet; this StateSet will be made identical to it
Parameters: obligation the obligation to remove
Throws: NonexistentObligationException
Returns: an exact deep copy of this StateSet
Parameters: obligationSet we want to get the State with this ObligationSet
Returns: the State with the given ObligationSet, or null if there is no such State
Parameters: factory the ObligationFactory used for the analysis
Returns: an Iterator over the States in the StateSet