AbstractStateT - The type of the abstract states in the BAM cache.public class JvmMemoryLocationAbstractState<AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>> extends java.lang.Object implements LatticeAbstractState<JvmMemoryLocationAbstractState<AbstractStateT>>, ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>, BamLocationDependent<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature>
AbstractState consists of a BamLocationDependentJvmMemoryLocation with a set of sources contributed into its value and the call
stack that generated it.| Modifier and Type | Class and Description |
|---|---|
static class |
JvmMemoryLocationAbstractState.StackEntry
An entry of the call stack of the state.
|
| Modifier and Type | Field and Description |
|---|---|
static JvmMemoryLocationAbstractState |
top |
| Modifier and Type | Method and Description |
|---|---|
void |
addSourceLocation(BamLocationDependentJvmMemoryLocation<AbstractStateT> sourceLocation)
Adds a source location to the source set.
|
boolean |
callStackContains(MethodSignature signature)
Returns true if a method is present in the call stack.
|
JvmMemoryLocationAbstractState |
copy()
Creates a copy of itself.
|
java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry> |
copyStack()
Returns a shallow copy of the call stack.
|
boolean |
equals(java.lang.Object obj) |
BamLocationDependentJvmMemoryLocation<AbstractStateT> |
getLocationDependentMemoryLocation() |
JvmCfaNode |
getProgramLocation()
Returns the program location.
|
java.util.Set<BamLocationDependentJvmMemoryLocation<AbstractStateT>> |
getSourceLocations()
Returns the source set.
|
ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> |
getSourceReachedSet()
Returns the reached set the abstract state belongs to.
|
int |
hashCode() |
boolean |
isLessOrEqual(JvmMemoryLocationAbstractState<AbstractStateT> abstractState)
Compares itself to the
abstractState. |
JvmMemoryLocationAbstractState |
join(JvmMemoryLocationAbstractState abstractState)
Computes a join over itself and the
abstractState. |
JvmMemoryLocationAbstractState.StackEntry |
peekCallStack()
Returns the information of the caller, null if the caller of the method the state belongs to is unknown.
|
void |
setProgramLocation(JvmCfaNode programLocation)
Sets the program location.
|
void |
setSourceReachedSet(ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet)
Sets the reached set the abstract state belongs to.
|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitisLessgetPrecision, getStateByNamepublic static final JvmMemoryLocationAbstractState top
public JvmMemoryLocationAbstractState(BamLocationDependentJvmMemoryLocation<AbstractStateT> locationDependentMemoryLocation)
JvmMemoryLocationAbstractState with empty source locations and call stack.locationDependentMemoryLocation - a JvmMemoryLocation in a specified program location coming from a specific reached set.public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet)
JvmMemoryLocationAbstractState with empty source locations and call stack.memoryLocation - a memory location.programLocation - the program location of the memory location.sourceReachedSet - the reached set of the traced analysis from which the analyzed state comes from.public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet, java.util.Set<BamLocationDependentJvmMemoryLocation<AbstractStateT>> sourceLocations)
JvmMemoryLocationAbstractState with empty call stack.memoryLocation - a memory location.programLocation - the program location of the memory location.sourceReachedSet - the reached set of the traced analysis from which the analyzed state comes from.sourceLocations - the succcessor memory locations.public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet, java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry> callStack)
JvmMemoryLocationAbstractState with empty source locations.memoryLocation - a memory location.programLocation - the program location of the memory location.sourceReachedSet - the reached set of the traced analysis from which the analyzed state comes from.callStack - the call stack.public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet, java.util.Set<BamLocationDependentJvmMemoryLocation<AbstractStateT>> sourceLocations, java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry> callStack)
JvmMemoryLocationAbstractState with source locations.memoryLocation - a memory location.programLocation - the program location of the memory location.sourceReachedSet - the reached set of the traced analysis from which the analyzed state comes from.sourceLocations - the succcessor memory locations.callStack - the call stack.public BamLocationDependentJvmMemoryLocation<AbstractStateT> getLocationDependentMemoryLocation()
public JvmMemoryLocationAbstractState.StackEntry peekCallStack()
public boolean callStackContains(MethodSignature signature)
public java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry> copyStack()
public JvmMemoryLocationAbstractState join(JvmMemoryLocationAbstractState abstractState)
LatticeAbstractStateabstractState.join in interface LatticeAbstractState<JvmMemoryLocationAbstractState<AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>>>public boolean isLessOrEqual(JvmMemoryLocationAbstractState<AbstractStateT> abstractState)
LatticeAbstractStateabstractState.isLessOrEqual in interface LatticeAbstractState<JvmMemoryLocationAbstractState<AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>>>public JvmCfaNode getProgramLocation()
ProgramLocationDependentgetProgramLocation in interface ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>public void setProgramLocation(JvmCfaNode programLocation)
ProgramLocationDependentsetProgramLocation in interface ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>public ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> getSourceReachedSet()
BamLocationDependentgetSourceReachedSet in interface BamLocationDependent<JvmCfaNode,JvmCfaEdge,AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,MethodSignature>public void setSourceReachedSet(ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet)
BamLocationDependentsetSourceReachedSet in interface BamLocationDependent<JvmCfaNode,JvmCfaEdge,AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,MethodSignature>public void addSourceLocation(BamLocationDependentJvmMemoryLocation<AbstractStateT> sourceLocation)
public java.util.Set<BamLocationDependentJvmMemoryLocation<AbstractStateT>> getSourceLocations()
public JvmMemoryLocationAbstractState copy()
AbstractStatecopy in interface AbstractStatepublic boolean equals(java.lang.Object obj)
equals in interface AbstractStateequals in class java.lang.Objectpublic int hashCode()
hashCode in interface AbstractStatehashCode in class java.lang.Object