Package edu.umd.cs.findbugs.detect
Class FindRefComparison.RefComparisonTypeMerger
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.type.StandardTypeMerger
-
- edu.umd.cs.findbugs.detect.FindRefComparison.RefComparisonTypeMerger
-
- All Implemented Interfaces:
ExtendedTypes
,TypeMerger
- Enclosing class:
- FindRefComparison
private static class FindRefComparison.RefComparisonTypeMerger extends StandardTypeMerger
Type merger to use the extended String types.
-
-
Field Summary
-
Fields inherited from interface edu.umd.cs.findbugs.ba.type.ExtendedTypes
T_AVAIL_TYPE, T_BOTTOM, T_DOUBLE_EXTRA, T_EXCEPTION, T_LONG_EXTRA, T_NULL, T_TOP
-
-
Constructor Summary
Constructors Constructor Description RefComparisonTypeMerger(RepositoryLookupFailureCallback lookupFailureCallback, ExceptionSetFactory exceptionSetFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isExtendedStringType(byte type)
protected boolean
isReferenceType(byte type)
Determine if the given typecode refers to a reference type.protected org.apache.bcel.generic.ReferenceType
mergeReferenceTypes(org.apache.bcel.generic.ReferenceType aRef, org.apache.bcel.generic.ReferenceType bRef)
Default implementation of merging reference types.-
Methods inherited from class edu.umd.cs.findbugs.ba.type.StandardTypeMerger
isIntegerType, isObjectType, mergeTypes
-
-
-
-
Constructor Detail
-
RefComparisonTypeMerger
public RefComparisonTypeMerger(RepositoryLookupFailureCallback lookupFailureCallback, ExceptionSetFactory exceptionSetFactory)
-
-
Method Detail
-
isReferenceType
protected boolean isReferenceType(byte type)
Description copied from class:StandardTypeMerger
Determine if the given typecode refers to a reference type. This implementation just checks that the type code is T_OBJECT, T_ARRAY, T_NULL, or T_EXCEPTION. Subclasses should override this if they have defined new object types with different type codes.- Overrides:
isReferenceType
in classStandardTypeMerger
-
mergeReferenceTypes
protected org.apache.bcel.generic.ReferenceType mergeReferenceTypes(org.apache.bcel.generic.ReferenceType aRef, org.apache.bcel.generic.ReferenceType bRef) throws DataflowAnalysisException
Description copied from class:StandardTypeMerger
Default implementation of merging reference types. This just returns the first common superclass, which is compliant with the JVM Spec. Subclasses may override this method in order to implement extended type rules.- Overrides:
mergeReferenceTypes
in classStandardTypeMerger
- Parameters:
aRef
- a ReferenceTypebRef
- a ReferenceType- Returns:
- the merged Type
- Throws:
DataflowAnalysisException
-
isExtendedStringType
private boolean isExtendedStringType(byte type)
-
-