public class SingleTypeState extends TypeState
TypeState.TypesObjectsIterator| Modifier and Type | Field and Description |
|---|---|
protected boolean |
canBeNull
Can this type state represent the null value?
|
protected AnalysisObject[] |
objects
The objects of this type state.
|
properties| Modifier | Constructor and Description |
|---|---|
|
SingleTypeState(PointsToAnalysis bb,
boolean canBeNull,
int properties,
AnalysisObject... objects)
Creates a new type state from incoming objects.
|
|
SingleTypeState(PointsToAnalysis bb,
boolean canBeNull,
int properties,
ArrayList<AnalysisObject> objects) |
protected |
SingleTypeState(PointsToAnalysis bb,
boolean canBeNull,
SingleTypeState other)
Create a type state with the same content and a reversed canBeNull value.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
canBeNull() |
protected boolean |
checkObjects(BigBang bb) |
boolean |
containsType(AnalysisType exactType)
Returns true if this type state contains the type, otherwise it returns false.
|
boolean |
equals(Object o) |
AnalysisType |
exactType()
If this type state has a single, exact type it returns that type, otherwise it returns null.
|
TypeState |
exactTypeState(PointsToAnalysis bb,
AnalysisType exactType)
This method is needed for accessing the SingleTypeState associated with an specific type of a
MutiTypeState, e.g.
|
protected TypeState |
forCanBeNull(PointsToAnalysis bb,
boolean stateCanBeNull) |
boolean |
hasExactTypes(BitSet inputTypesBitSet)
Returns true if the type state contains exact the same types as the bit set.
|
int |
hashCode() |
void |
noteMerge(PointsToAnalysis bb)
Note that the objects of this type state have been merged.
|
AnalysisObject[] |
objects()
Returns the objects as an array.
|
AnalysisObject[] |
objectsArray(AnalysisType type)
Returns the objects corresponding to the type.
|
int |
objectsCount()
Get the number of objects.
|
protected Iterator<AnalysisObject> |
objectsIterator(AnalysisType type)
Provides an iterator for the objects corresponding to the type.
|
String |
toString() |
int |
typesCount()
Get the number of types.
|
protected Iterator<AnalysisType> |
typesIterator(BigBang bb)
Provides an iterator over the types.
|
containsObject, forAllocation, forAllocation, forClone, forConstant, forContextInsensitiveTypeState, forEmpty, forExactType, forExactType, forExactTypes, forIntersection, forNonNull, forNonNullObject, forNull, forSubtraction, forType, forType, forUnion, getId, getProperties, getTypesObjectsIterator, isAllocation, isConstant, isEmpty, isMultiTypeState, isNull, isSingleTypeState, objects, objectsStream, setId, types, typesStream, verifyDeclaredTypeprotected final AnalysisObject[] objects
protected final boolean canBeNull
public SingleTypeState(PointsToAnalysis bb, boolean canBeNull, int properties, ArrayList<AnalysisObject> objects)
public SingleTypeState(PointsToAnalysis bb, boolean canBeNull, int properties, AnalysisObject... objects)
protected SingleTypeState(PointsToAnalysis bb, boolean canBeNull, SingleTypeState other)
protected boolean checkObjects(BigBang bb)
public int typesCount()
TypeStatetypesCount in class TypeStatepublic boolean hasExactTypes(BitSet inputTypesBitSet)
TypeStatehasExactTypes in class TypeStatepublic AnalysisType exactType()
TypeStateprotected Iterator<AnalysisType> typesIterator(BigBang bb)
TypeStatetypesIterator in class TypeStatepublic boolean containsType(AnalysisType exactType)
TypeStatecontainsType in class TypeStatepublic final int objectsCount()
TypeStateobjectsCount in class TypeStatepublic final AnalysisObject[] objects()
TypeStatepublic AnalysisObject[] objectsArray(AnalysisType type)
TypeStateobjectsArray in class TypeStateprotected Iterator<AnalysisObject> objectsIterator(AnalysisType type)
TypeStateobjectsIterator in class TypeStatepublic TypeState exactTypeState(PointsToAnalysis bb, AnalysisType exactType)
TypeStateexactTypeState in class TypeStateprotected TypeState forCanBeNull(PointsToAnalysis bb, boolean stateCanBeNull)
forCanBeNull in class TypeStatepublic void noteMerge(PointsToAnalysis bb)