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 java.lang.Object implements ReachedSet<StateT>
ThisReachedSetstoresProgramLocationDependentAbstractStates. It assumes the analysis does merge theAbstractStates belonging to differentCfaNodes and stores them in separate bins.
-
-
Constructor Summary
Constructors Constructor Description ProgramLocationDependentReachedSet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(StateT abstractState)Adds an abstract state.booleanaddAll(java.util.Collection<? extends StateT> abstractStates)Adds multiple abstract states.java.util.Collection<StateT>asCollection()Returns a collection representation of itself.voidclear()Empties the reached set.java.util.Collection<StateT>getReached(JvmCfaNode location)Returns a collection of abstract states belonging to the givenlocation.java.util.Collection<StateT>getReached(StateT abstractState)Returns a collection of abstract states mergeable with theabstractState.booleanremove(StateT abstractState)Removes an abstract state.booleanremoveAll(java.util.Collection<? extends StateT> abstractStates)Removes multiple abstract states.
-
-
-
Method Detail
-
add
public boolean add(StateT abstractState)
Description copied from interface:ReachedSetAdds an abstract state.- Specified by:
addin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
addAll
public boolean addAll(java.util.Collection<? extends StateT> abstractStates)
Description copied from interface:ReachedSetAdds multiple abstract states.- Specified by:
addAllin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
remove
public boolean remove(StateT abstractState)
Description copied from interface:ReachedSetRemoves an abstract state.- Specified by:
removein interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
removeAll
public boolean removeAll(java.util.Collection<? extends StateT> abstractStates)
Description copied from interface:ReachedSetRemoves multiple abstract states.- Specified by:
removeAllin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
asCollection
public java.util.Collection<StateT> asCollection()
Description copied from interface:ReachedSetReturns a collection representation of itself.- Specified by:
asCollectionin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
getReached
public java.util.Collection<StateT> getReached(StateT abstractState)
Description copied from interface:ReachedSetReturns a collection of abstract states mergeable with theabstractState.- Specified by:
getReachedin interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
getReached
public java.util.Collection<StateT> getReached(JvmCfaNode location)
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>
-
-