Package proguard.analysis.cpa.interfaces
Interface AbstractState<StateT extends AbstractState<StateT>>
-
- Type Parameters:
StateT
- recursive generic type of the abstract state.
- All Known Subinterfaces:
JvmHeapAbstractState<StateT>
,MapAbstractState<KeyT,AbstractSpaceT>
- All Known Implementing Classes:
HashMapAbstractState
,JvmAbstractState
,JvmForgetfulHeapAbstractState
,JvmFrameAbstractState
,JvmMemoryLocationAbstractState
,JvmShallowHeapAbstractState
,JvmValueAbstractState
,ListAbstractState
,SetAbstractState
,StackAbstractState
,ValueAbstractState
public interface AbstractState<StateT extends AbstractState<StateT>>
AnAbstractState
contains information about the program state.Abstract states are meant as part of a join-semilattice representing the domain of the analysis and implement operations over this set. In particular the states should be able to determine whether they are below another state in the partial order and to calculate the least upper bound on the semilattice when another state is provided (i.e., join operation).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description StateT
copy()
Creates a copy of itself.boolean
equals(java.lang.Object obj)
default Precision
getPrecision()
Returns thePrecision
used by thePrecisionAdjustment
.int
hashCode()
default boolean
isLess(StateT abstractStateT)
Strictly compares itself to theabstractState
.boolean
isLessOrEqual(StateT abstractState)
Compares itself to theabstractState
(i.e., compare the states on the partial order provided by the domain of the analysis).StateT
join(StateT abstractState)
Computes a join over itself and another abstract stateabstractState
(i.e., finds the least upper bound on the semilattice).
-
-
-
Method Detail
-
getPrecision
default Precision getPrecision()
Returns thePrecision
used by thePrecisionAdjustment
.
-
copy
StateT copy()
Creates a copy of itself.
-
equals
boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
join
StateT join(StateT abstractState)
Computes a join over itself and another abstract stateabstractState
(i.e., finds the least upper bound on the semilattice).
-
isLessOrEqual
boolean isLessOrEqual(StateT abstractState)
Compares itself to theabstractState
(i.e., compare the states on the partial order provided by the domain of the analysis).
-
isLess
default boolean isLess(StateT abstractStateT)
Strictly compares itself to theabstractState
.
-
-