Class JvmForgetfulHeapAbstractState<StateT extends AbstractState<StateT>>
- java.lang.Object
-
- proguard.analysis.cpa.jvm.state.heap.JvmForgetfulHeapAbstractState<StateT>
-
- All Implemented Interfaces:
AbstractState<JvmHeapAbstractState<StateT>>,JvmHeapAbstractState<StateT>
public class JvmForgetfulHeapAbstractState<StateT extends AbstractState<StateT>> extends java.lang.Object implements JvmHeapAbstractState<StateT>
This is a forgetful stub heap implementation. It does not change and always returns the default value.
-
-
Constructor Summary
Constructors Constructor Description JvmForgetfulHeapAbstractState(StateT defaultValue)Create a forgetful heap abstract state returning the specified value for all queries.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JvmForgetfulHeapAbstractState<StateT>copy()Creates a copy of itself.booleanequals(java.lang.Object o)<T> StateTgetArrayElementOrDefault(T array, StateT index, StateT defaultValue)Returns anarrayelement at the specifiedindexor thedefaultValue, if the element is unset.<T> StateTgetFieldOrDefault(T object, java.lang.String fqn, StateT defaultValue)Returns a fieldfqnfrom a referenceobject.inthashCode()booleanisLessOrEqual(JvmHeapAbstractState<StateT> abstractState)Compares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).JvmForgetfulHeapAbstractState<StateT>join(JvmHeapAbstractState<StateT> abstractState)Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).StateTnewArray(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.StateTnewObject(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.<T> voidsetArrayElement(T array, StateT index, StateT value)Sets thearrayelementvalueat the specifiedindex.<T> voidsetField(T object, java.lang.String fqn, StateT value)Sets avalueto a fieldfqnof a referencedobject.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.analysis.cpa.interfaces.AbstractState
getPrecision, isLess
-
Methods inherited from interface proguard.analysis.cpa.jvm.state.heap.JvmHeapAbstractState
expand, newObject, reduce
-
-
-
-
Constructor Detail
-
JvmForgetfulHeapAbstractState
public JvmForgetfulHeapAbstractState(StateT defaultValue)
Create a forgetful heap abstract state returning the specified value for all queries.- Parameters:
defaultValue- the value to be returned by memory accesses
-
-
Method Detail
-
getFieldOrDefault
public <T> StateT getFieldOrDefault(T object, java.lang.String fqn, StateT defaultValue)
Description copied from interface:JvmHeapAbstractStateReturns a fieldfqnfrom a referenceobject. If there is no abstract state representing the field, returns thedefaultValue- Specified by:
getFieldOrDefaultin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
setField
public <T> void setField(T object, java.lang.String fqn, StateT value)Description copied from interface:JvmHeapAbstractStateSets avalueto a fieldfqnof a referencedobject.- Specified by:
setFieldin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
getArrayElementOrDefault
public <T> StateT getArrayElementOrDefault(T array, StateT index, StateT defaultValue)
Description copied from interface:JvmHeapAbstractStateReturns anarrayelement at the specifiedindexor thedefaultValue, if the element is unset.- Specified by:
getArrayElementOrDefaultin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
setArrayElement
public <T> void setArrayElement(T array, StateT index, StateT value)Description copied from interface:JvmHeapAbstractStateSets thearrayelementvalueat the specifiedindex.- Specified by:
setArrayElementin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
newObject
public StateT newObject(java.lang.String className, JvmCfaNode creationCite)
Description copied from interface:JvmHeapAbstractStateCreates a new object of a given class at a specific program point and returns a reference to it.- Specified by:
newObjectin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
newArray
public StateT newArray(java.lang.String type, java.util.List<StateT> dimensions, JvmCfaNode creationCite)
Description copied from interface:JvmHeapAbstractStateCreates a new array of a given class with the given dimension sizes at a specific program point and returns a reference to it.- Specified by:
newArrayin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
join
public JvmForgetfulHeapAbstractState<StateT> join(JvmHeapAbstractState<StateT> abstractState)
Description copied from interface:AbstractStateComputes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).- Specified by:
joinin interfaceAbstractState<StateT extends AbstractState<StateT>>
-
isLessOrEqual
public boolean isLessOrEqual(JvmHeapAbstractState<StateT> abstractState)
Description copied from interface:AbstractStateCompares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).- Specified by:
isLessOrEqualin interfaceAbstractState<StateT extends AbstractState<StateT>>
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equalsin interfaceAbstractState<StateT extends AbstractState<StateT>>- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceAbstractState<StateT extends AbstractState<StateT>>- Overrides:
hashCodein classjava.lang.Object
-
copy
public JvmForgetfulHeapAbstractState<StateT> copy()
Description copied from interface:AbstractStateCreates a copy of itself.- Specified by:
copyin interfaceAbstractState<StateT extends AbstractState<StateT>>- Specified by:
copyin interfaceJvmHeapAbstractState<StateT extends AbstractState<StateT>>
-
-