ContentT - The content of the jvm states for the traced analysis, contained in the BAM
cache. For example, this can be a SetAbstractState of taints for taint analysis or a
ValueAbstractState for value analysis.public class BamLocationDependentJvmMemoryLocation<ContentT extends AbstractState<ContentT>> extends java.lang.Object implements ProgramLocationDependent, BamLocationDependent<ContentT>
JvmMemoryLocation adding information on its program location and
source reached set.| Constructor and Description |
|---|
BamLocationDependentJvmMemoryLocation(JvmMemoryLocation memoryLocation) |
BamLocationDependentJvmMemoryLocation(JvmMemoryLocation memoryLocation,
JvmCfaNode programLocation,
ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet) |
| Modifier and Type | Method and Description |
|---|---|
BamLocationDependentJvmMemoryLocation<ContentT> |
copy() |
boolean |
equals(java.lang.Object obj) |
ContentT |
extractFirstValue(ContentT defaultValue)
Extract the value from the first state from the reached state corresponding to the program,
memory location, and BAM cache entry represented by this object.
|
JvmMemoryLocation |
getMemoryLocation() |
JvmCfaNode |
getProgramLocation()
Returns the program location.
|
ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> |
getSourceReachedSet()
Returns the reached set the abstract state belongs to.
|
int |
hashCode() |
void |
setProgramLocation(JvmCfaNode programLocation)
Sets the program location.
|
void |
setSourceReachedSet(ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet)
Sets the reached set the abstract state belongs to.
|
java.lang.String |
toString() |
public BamLocationDependentJvmMemoryLocation(JvmMemoryLocation memoryLocation)
public BamLocationDependentJvmMemoryLocation(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet)
public JvmMemoryLocation getMemoryLocation()
public BamLocationDependentJvmMemoryLocation<ContentT> copy()
public ContentT extractFirstValue(ContentT defaultValue)
Most analyses will have one state at most for each program location, and this method should be mostly used for this kind of analyses since it will return the only valid state. It's also possible that, for analyses where multiple states are possible, the returned value might be non-deterministic depending on the underlying reached set implementation.
public JvmCfaNode getProgramLocation()
ProgramLocationDependentgetProgramLocation in interface ProgramLocationDependentpublic void setProgramLocation(JvmCfaNode programLocation)
ProgramLocationDependentsetProgramLocation in interface ProgramLocationDependentpublic ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> getSourceReachedSet()
BamLocationDependentgetSourceReachedSet in interface BamLocationDependent<ContentT extends AbstractState<ContentT>>public void setSourceReachedSet(ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet)
BamLocationDependentsetSourceReachedSet in interface BamLocationDependent<ContentT extends AbstractState<ContentT>>public boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Object