Package proguard.analysis.cpa.defaults
Class ProgramLocationDependentReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
java.lang.Object
proguard.analysis.cpa.defaults.ProgramLocationDependentReachedSet<StateT>
- Type Parameters:
StateT- The type of theProgramLocationDependentabstract states contained in the reached set. Typically, aJvmAbstractState, but might be a different type of state depending on the analysis (e.g., might containJvmMemoryLocationAbstractStatefor taint trace analysis).
- All Implemented Interfaces:
ReachedSet<StateT>
public final class ProgramLocationDependentReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
extends Object
implements ReachedSet<StateT>
This
ReachedSet stores ProgramLocationDependent AbstractStates. It
assumes the analysis does merge the AbstractStates belonging to different CfaNodes and stores them in separate bins.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanAdds an abstract state.booleanaddAll(Collection<? extends StateT> abstractStates) Adds multiple abstract states.Returns a collection representation of itself.voidclear()Empties the reached set.getReached(JvmCfaNode location) Returns a collection of abstract states belonging to the givenlocation.getReached(StateT abstractState) Returns a collection of abstract states mergeable with theabstractState.booleanRemoves an abstract state.booleanremoveAll(Collection<? extends StateT> abstractStates) Removes multiple abstract states.
-
Constructor Details
-
ProgramLocationDependentReachedSet
public ProgramLocationDependentReachedSet()
-
-
Method Details
-
add
Description copied from interface:ReachedSetAdds an abstract state.- Specified by:
addin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
addAll
Description copied from interface:ReachedSetAdds multiple abstract states.- Specified by:
addAllin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
remove
Description copied from interface:ReachedSetRemoves an abstract state.- Specified by:
removein interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
removeAll
Description copied from interface:ReachedSetRemoves multiple abstract states.- Specified by:
removeAllin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
asCollection
Description copied from interface:ReachedSetReturns a collection representation of itself.- Specified by:
asCollectionin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
getReached
Description copied from interface:ReachedSetReturns a collection of abstract states mergeable with theabstractState.- Specified by:
getReachedin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
getReached
Returns a collection of abstract states belonging to the givenlocation. -
clear
public void clear()Description copied from interface:ReachedSetEmpties the reached set.- Specified by:
clearin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-