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, wait
isLess
getPrecision, getStateByName
public 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)
LatticeAbstractState
abstractState
.join
in interface LatticeAbstractState<JvmMemoryLocationAbstractState<AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>>>
public boolean isLessOrEqual(JvmMemoryLocationAbstractState<AbstractStateT> abstractState)
LatticeAbstractState
abstractState
.isLessOrEqual
in interface LatticeAbstractState<JvmMemoryLocationAbstractState<AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>>>
public JvmCfaNode getProgramLocation()
ProgramLocationDependent
getProgramLocation
in interface ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>
public void setProgramLocation(JvmCfaNode programLocation)
ProgramLocationDependent
setProgramLocation
in interface ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>
public ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> getSourceReachedSet()
BamLocationDependent
getSourceReachedSet
in interface BamLocationDependent<JvmCfaNode,JvmCfaEdge,AbstractStateT extends AbstractState & ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,MethodSignature>
public void setSourceReachedSet(ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,AbstractStateT,MethodSignature> sourceReachedSet)
BamLocationDependent
setSourceReachedSet
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()
AbstractState
copy
in interface AbstractState
public boolean equals(java.lang.Object obj)
equals
in interface AbstractState
equals
in class java.lang.Object
public int hashCode()
hashCode
in interface AbstractState
hashCode
in class java.lang.Object