public class ConstantTypeState extends SingleTypeState
JavaConstant flowing through the data flow graph. As soon as this constant is
merged with any other object (even of the same type) it is erased and the state falls back to a
SingleTypeState.| Modifier and Type | Field and Description |
|---|---|
protected JavaConstant |
constant
The constant object of this type state.
|
canBeNull, merged, type| Modifier | Constructor and Description |
|---|---|
|
ConstantTypeState(PointsToAnalysis bb,
AnalysisType type,
JavaConstant constant)
Creates a new type state from incoming objects.
|
protected |
ConstantTypeState(PointsToAnalysis bb,
boolean canBeNull,
ConstantTypeState other)
Create a type state with the same content and a reversed canBeNull value.
|
| Modifier and Type | Method and Description |
|---|---|
JavaConstant |
asConstant()
Returns a non-null value when this type state represents a single constant value, or null if
this type state is not a single constant.
|
boolean |
equals(Object obj) |
TypeState |
forCanBeNull(PointsToAnalysis bb,
boolean stateCanBeNull) |
JavaConstant |
getConstant() |
int |
hashCode() |
void |
noteMerge(PointsToAnalysis bb)
Note that the objects of this type state have been merged.
|
protected Iterator<AnalysisObject> |
objectsIterator(AnalysisType t)
Provides an iterator for the objects corresponding to the type.
|
Iterator<AnalysisObject> |
objectsIterator(BigBang bb) |
String |
toString() |
canBeNull, containsType, exactType, isMerged, objectsCount, singletonIterator, typesCount, typesIteratorforConstant, forEmpty, forExactType, forExactType, forIntersection, forNonNull, forNonNullObject, forNull, forSubtraction, forType, forType, forUnion, isAllocation, isEmpty, isNull, objects, objects, types, typesStream, verifyDeclaredTypepublic ConstantTypeState(PointsToAnalysis bb, AnalysisType type, JavaConstant constant)
protected ConstantTypeState(PointsToAnalysis bb, boolean canBeNull, ConstantTypeState other)
public JavaConstant getConstant()
public TypeState forCanBeNull(PointsToAnalysis bb, boolean stateCanBeNull)
forCanBeNull in class SingleTypeStatepublic Iterator<AnalysisObject> objectsIterator(BigBang bb)
objectsIterator in class SingleTypeStateprotected Iterator<AnalysisObject> objectsIterator(AnalysisType t)
TypeStateobjectsIterator in class SingleTypeStatepublic void noteMerge(PointsToAnalysis bb)
SingleTypeStatenoteMerge in class SingleTypeStatepublic JavaConstant asConstant()
TypeStateTypeState.canBeNull() flag still applies when a constant is returned. A type
state that is a "constant or null" both returns a non-null result for TypeState.asConstant()}
and true for TypeState.canBeNull().asConstant in class TypeStatepublic int hashCode()
hashCode in class SingleTypeStatepublic boolean equals(Object obj)
equals in class SingleTypeStatepublic String toString()
toString in class SingleTypeState