public class JvmTreeHeapFollowerAbstractState<StateT extends LatticeAbstractState<StateT>> extends JvmTreeHeapAbstractState<StateT>
JvmTreeHeapPrincipalAbstractState instead for finding out which field/variable references an object.mapAbstractStateFactory, referenceToNode| Constructor and Description |
|---|
JvmTreeHeapFollowerAbstractState(JvmReferenceAbstractState principal,
StateT defaultValue,
MapAbstractState<Reference,HeapNode<StateT>> referenceToNode,
MapAbstractStateFactory mapAbstractStateFactory)
Create a follower heap abstract state.
|
| Modifier and Type | Method and Description |
|---|---|
JvmTreeHeapFollowerAbstractState<StateT> |
copy()
Creates a copy of itself.
|
StateT |
getArrayElementOrDefault(StateT array,
StateT index,
StateT defaultValue)
Returns an
array element at the specified index or the defaultValue, if the element is unset. |
StateT |
getField(StateT object,
java.lang.String descriptor,
StateT defaultValue)
Returns a field
descriptor from a reference object. |
boolean |
isLessOrEqual(JvmHeapAbstractState<StateT> abstractState)
Compares itself to the
abstractState. |
JvmTreeHeapFollowerAbstractState<StateT> |
join(JvmHeapAbstractState<StateT> abstractState)
Computes a join over itself and the
abstractState. |
StateT |
newArray(java.lang.String type,
java.util.List<StateT> dimensions,
JvmCfaNode creationCite)
Creates a new array of a given class with the given dimension sizes at a specific program point and returns a reference to it.
|
StateT |
newObject(java.lang.String className,
JvmCfaNode creationCite)
Creates a new object of a given class at a specific program point and returns a reference to it.
|
void |
reduce(java.util.Optional<java.util.Set<Reference>> references)
Removes all the nodes not present in the principal model.
|
void |
setArrayElement(StateT array,
StateT index,
StateT value)
Sets the
array element value at the specified index. |
void |
setField(StateT object,
java.lang.String descriptor,
StateT value)
Sets a
value to a field descriptor of a referenced object and returns the value. |
void |
setPrincipalState(JvmReferenceAbstractState principal) |
equals, expand, getArrayElementOrDefault, getField, hashCode, setArrayElement, setFieldclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitisLessgetPrecision, getStateByNamepublic JvmTreeHeapFollowerAbstractState(JvmReferenceAbstractState principal, StateT defaultValue, MapAbstractState<Reference,HeapNode<StateT>> referenceToNode, MapAbstractStateFactory mapAbstractStateFactory)
principal - the principal heap abstract state containing reference abstract statesdefaultValue - the default value representing unknown valuesreferenceToNode - the mapping from references to heap nodesmapAbstractStateFactory - a map abstract state factory used for constructing the mapping from fields to valuespublic StateT getField(StateT object, java.lang.String descriptor, StateT defaultValue)
JvmHeapAbstractStatedescriptor from a reference object.
If there is no abstract state representing the field, returns the defaultValuepublic void setField(StateT object, java.lang.String descriptor, StateT value)
JvmHeapAbstractStatevalue to a field descriptor of a referenced object and returns the value.public StateT getArrayElementOrDefault(StateT array, StateT index, StateT defaultValue)
JvmHeapAbstractStatearray element at the specified index or the defaultValue, if the element is unset.public void setArrayElement(StateT array, StateT index, StateT value)
JvmHeapAbstractStatearray element value at the specified index.public StateT newObject(java.lang.String className, JvmCfaNode creationCite)
JvmHeapAbstractStatepublic StateT newArray(java.lang.String type, java.util.List<StateT> dimensions, JvmCfaNode creationCite)
JvmHeapAbstractStatepublic void reduce(java.util.Optional<java.util.Set<Reference>> references)
references - unusedpublic JvmTreeHeapFollowerAbstractState<StateT> join(JvmHeapAbstractState<StateT> abstractState)
LatticeAbstractStateabstractState.public boolean isLessOrEqual(JvmHeapAbstractState<StateT> abstractState)
LatticeAbstractStateabstractState.isLessOrEqual in interface LatticeAbstractState<JvmHeapAbstractState<StateT extends LatticeAbstractState<StateT>>>isLessOrEqual in class JvmTreeHeapAbstractState<StateT extends LatticeAbstractState<StateT>>public JvmTreeHeapFollowerAbstractState<StateT> copy()
AbstractStatepublic void setPrincipalState(JvmReferenceAbstractState principal)