Package edu.umd.cs.findbugs.ba.jsr305
Class TypeQualifierValueSet
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValueSet
-
public class TypeQualifierValueSet extends java.lang.Object
Set of ValueNumbers and their corresponding FlowValues.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
TypeQualifierValueSet.State
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
isStrict
private TypeQualifierValueSet.State
state
private java.util.Map<ValueNumber,FlowValue>
valueMap
private java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>>
whereAlways
private java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>>
whereNever
-
Constructor Summary
Constructors Constructor Description TypeQualifierValueSet(TypeQualifierValue<?> typeQualifierValue)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
addSourceSinkInfo(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn, SourceSinkInfo sourceSinkInfo)
private static void
appendSourceSinkInfos(java.lang.StringBuilder buf, java.lang.String key, java.util.Set<? extends SourceSinkInfo> sourceSinkInfoSet)
(package private) void
copyInfo(ValueNumber from, ValueNumber to)
(package private) static <K,V>
voidcopyMapValue(java.util.Map<K,V> map, K from, K to)
private void
copySourceSinkInfoSetMap(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> dest, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> source)
boolean
equals(java.lang.Object obj)
private static java.util.Set<SourceSinkInfo>
getOrCreateSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn)
private static java.util.Set<? extends SourceSinkInfo>
getSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn)
FlowValue
getValue(ValueNumber vn)
java.util.Collection<? extends ValueNumber>
getValueNumbers()
java.util.Set<? extends SourceSinkInfo>
getWhere(ValueNumber vn)
java.util.Set<? extends SourceSinkInfo>
getWhereAlways(ValueNumber vn)
java.util.Set<? extends SourceSinkInfo>
getWhereNever(ValueNumber vn)
int
hashCode()
boolean
isBottom()
boolean
isTop()
boolean
isValid()
void
makeSameAs(TypeQualifierValueSet source)
void
makeValid()
private void
mergeSourceSinkInfoSets(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMapToUpdate, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> otherSourceSinkInfoSetMap, ValueNumber vn)
void
mergeWith(TypeQualifierValueSet fact)
void
modelSourceSink(SourceSinkInfo sourceSinkInfo)
void
propagateAcrossPhiNode(ValueNumber fromVN, ValueNumber toVN)
void
pruneValue(ValueNumber vn)
private void
reset(TypeQualifierValueSet.State state)
void
setBottom()
void
setTop()
private void
setValue(ValueNumber vn, FlowValue flowValue)
java.lang.String
toString()
private static void
transferSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber fromVN, ValueNumber toVN)
java.lang.String
valueNumberToString(ValueNumber vn)
java.lang.String
valueNumberToString(ValueNumber vn, FlowValue value)
-
-
-
Field Detail
-
valueMap
private final java.util.Map<ValueNumber,FlowValue> valueMap
-
whereAlways
private final java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> whereAlways
-
whereNever
private final java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> whereNever
-
state
private TypeQualifierValueSet.State state
-
isStrict
final boolean isStrict
-
-
Constructor Detail
-
TypeQualifierValueSet
public TypeQualifierValueSet(TypeQualifierValue<?> typeQualifierValue)
-
-
Method Detail
-
modelSourceSink
public void modelSourceSink(SourceSinkInfo sourceSinkInfo)
-
setValue
private void setValue(ValueNumber vn, FlowValue flowValue)
-
copyMapValue
static <K,V> void copyMapValue(java.util.Map<K,V> map, K from, K to)
-
copyInfo
void copyInfo(ValueNumber from, ValueNumber to)
-
addSourceSinkInfo
private static void addSourceSinkInfo(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn, SourceSinkInfo sourceSinkInfo)
-
pruneValue
public void pruneValue(ValueNumber vn)
-
getWhere
public java.util.Set<? extends SourceSinkInfo> getWhere(ValueNumber vn)
-
getWhereAlways
public java.util.Set<? extends SourceSinkInfo> getWhereAlways(ValueNumber vn)
-
getWhereNever
public java.util.Set<? extends SourceSinkInfo> getWhereNever(ValueNumber vn)
-
getSourceSinkInfoSet
private static java.util.Set<? extends SourceSinkInfo> getSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn)
-
getOrCreateSourceSinkInfoSet
private static java.util.Set<SourceSinkInfo> getOrCreateSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn)
-
getValue
public FlowValue getValue(ValueNumber vn)
-
getValueNumbers
public java.util.Collection<? extends ValueNumber> getValueNumbers()
-
isValid
public boolean isValid()
-
makeValid
public void makeValid()
-
makeSameAs
public void makeSameAs(TypeQualifierValueSet source)
-
copySourceSinkInfoSetMap
private void copySourceSinkInfoSetMap(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> dest, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> source)
-
isTop
public boolean isTop()
-
setTop
public void setTop()
-
isBottom
public boolean isBottom()
-
setBottom
public void setBottom()
-
reset
private void reset(TypeQualifierValueSet.State state)
-
propagateAcrossPhiNode
public void propagateAcrossPhiNode(ValueNumber fromVN, ValueNumber toVN)
-
transferSourceSinkInfoSet
private static void transferSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber fromVN, ValueNumber toVN)
-
mergeWith
public void mergeWith(TypeQualifierValueSet fact) throws DataflowAnalysisException
- Throws:
DataflowAnalysisException
-
mergeSourceSinkInfoSets
private void mergeSourceSinkInfoSets(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMapToUpdate, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> otherSourceSinkInfoSetMap, ValueNumber vn)
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
valueNumberToString
public java.lang.String valueNumberToString(ValueNumber vn)
-
valueNumberToString
public java.lang.String valueNumberToString(ValueNumber vn, FlowValue value)
-
appendSourceSinkInfos
private static void appendSourceSinkInfos(java.lang.StringBuilder buf, java.lang.String key, java.util.Set<? extends SourceSinkInfo> sourceSinkInfoSet)
-
-