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