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.ObjectSet of ValueNumbers and their corresponding FlowValues.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classTypeQualifierValueSet.State
-
Field Summary
Fields Modifier and Type Field Description (package private) booleanisStrictprivate TypeQualifierValueSet.Statestateprivate java.util.Map<ValueNumber,FlowValue>valueMapprivate java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>>whereAlwaysprivate 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 voidaddSourceSinkInfo(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber vn, SourceSinkInfo sourceSinkInfo)private static voidappendSourceSinkInfos(java.lang.StringBuilder buf, java.lang.String key, java.util.Set<? extends SourceSinkInfo> sourceSinkInfoSet)(package private) voidcopyInfo(ValueNumber from, ValueNumber to)(package private) static <K,V>
voidcopyMapValue(java.util.Map<K,V> map, K from, K to)private voidcopySourceSinkInfoSetMap(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> dest, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> source)booleanequals(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)FlowValuegetValue(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)inthashCode()booleanisBottom()booleanisTop()booleanisValid()voidmakeSameAs(TypeQualifierValueSet source)voidmakeValid()private voidmergeSourceSinkInfoSets(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMapToUpdate, java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> otherSourceSinkInfoSetMap, ValueNumber vn)voidmergeWith(TypeQualifierValueSet fact)voidmodelSourceSink(SourceSinkInfo sourceSinkInfo)voidpropagateAcrossPhiNode(ValueNumber fromVN, ValueNumber toVN)voidpruneValue(ValueNumber vn)private voidreset(TypeQualifierValueSet.State state)voidsetBottom()voidsetTop()private voidsetValue(ValueNumber vn, FlowValue flowValue)java.lang.StringtoString()private static voidtransferSourceSinkInfoSet(java.util.Map<ValueNumber,java.util.Set<SourceSinkInfo>> sourceSinkInfoSetMap, ValueNumber fromVN, ValueNumber toVN)java.lang.StringvalueNumberToString(ValueNumber vn)java.lang.StringvalueNumberToString(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:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin 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)
-
-