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 theProgramLocationDependent
abstract states contained in the reached set. Typically, aJvmAbstractState
, but might be a different type of state depending on the analysis (e.g., might containJvmMemoryLocationAbstractState
for taint trace analysis).
- All Implemented Interfaces:
ReachedSet<StateT>
public final class ProgramLocationDependentReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent> extends java.lang.Object implements ReachedSet<StateT>
ThisReachedSet
storesProgramLocationDependent
AbstractState
s. It assumes the analysis does merge theAbstractState
s belonging to differentCfaNode
s 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 boolean
add(StateT abstractState)
Adds an abstract state.boolean
addAll(java.util.Collection<? extends StateT> abstractStates)
Adds multiple abstract states.java.util.Collection<StateT>
asCollection()
Returns a collection representation of itself.void
clear()
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
.boolean
remove(StateT abstractState)
Removes an abstract state.boolean
removeAll(java.util.Collection<? extends StateT> abstractStates)
Removes multiple abstract states.
-
-
-
Method Detail
-
add
public boolean add(StateT abstractState)
Description copied from interface:ReachedSet
Adds an abstract state.- Specified by:
add
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
addAll
public boolean addAll(java.util.Collection<? extends StateT> abstractStates)
Description copied from interface:ReachedSet
Adds multiple abstract states.- Specified by:
addAll
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
remove
public boolean remove(StateT abstractState)
Description copied from interface:ReachedSet
Removes an abstract state.- Specified by:
remove
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
removeAll
public boolean removeAll(java.util.Collection<? extends StateT> abstractStates)
Description copied from interface:ReachedSet
Removes multiple abstract states.- Specified by:
removeAll
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
asCollection
public java.util.Collection<StateT> asCollection()
Description copied from interface:ReachedSet
Returns a collection representation of itself.- Specified by:
asCollection
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
getReached
public java.util.Collection<StateT> getReached(StateT abstractState)
Description copied from interface:ReachedSet
Returns a collection of abstract states mergeable with theabstractState
.- Specified by:
getReached
in 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:ReachedSet
Empties the reached set.- Specified by:
clear
in interfaceReachedSet<StateT extends AbstractState<StateT> & ProgramLocationDependent>
-
-