Class TypeQualifierNullnessAnnotationDatabase
java.lang.Object
edu.umd.cs.findbugs.ba.npe.TypeQualifierNullnessAnnotationDatabase
- All Implemented Interfaces:
INullnessAnnotationDatabase
public class TypeQualifierNullnessAnnotationDatabase
extends Object
implements INullnessAnnotationDatabase
Implementation of INullnessAnnotationDatabase that is based on JSR-305 type
qualifiers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final booleanfinal TypeQualifierValue<javax.annotation.Nonnull> private static final ClassDescriptorprivate static final ClassDescriptor -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a default annotation to the database.voidaddFieldAnnotation(String cName, String mName, String mSig, boolean isStatic, NullnessAnnotation annotation) Add a field annotation to the database.voidaddMethodAnnotation(String cName, String mName, String sig, boolean isStatic, NullnessAnnotation annotation) Add a method annotation to the database.voidaddMethodParameterAnnotation(String cName, String mName, String sig, boolean isStatic, int param, NullnessAnnotation annotation) Add a method parameter annotation to the database.static booleangetInheritedAnnotation(XMethod m, int parameter) private ClassDescriptorConvert a NullnessAnnotation into the ClassDescriptor of the equivalent JSR-305 nullness type qualifier.getResolvedAnnotation(Object o, boolean getMinimal) Get a resolved NullnessAnnotation on given XMethod, XField, or XMethodParameter.getXMethod(String cName, String mName, String sig, boolean isStatic) voidLoad "built-in" annotations that might not be evident from the analyzed/referenced code.booleanparameterMustBeNonNull(XMethod m, int param) Determine whether given parameter must be non-null.private NullnessAnnotationConvert a Nonnull-based TypeQualifierAnnotation into a NullnessAnnotation.
-
Field Details
-
DEBUG
private static final boolean DEBUG -
nonnullTypeQualifierValue
-
PARAMETERS_ARE_NONNULL_BY_DEFAULT
-
RETURN_VALUES_ARE_NONNULL_BY_DEFAULT
-
-
Constructor Details
-
TypeQualifierNullnessAnnotationDatabase
public TypeQualifierNullnessAnnotationDatabase()
-
-
Method Details
-
getResolvedAnnotation
Description copied from interface:INullnessAnnotationDatabaseGet a resolved NullnessAnnotation on given XMethod, XField, or XMethodParameter.- Specified by:
getResolvedAnnotationin interfaceINullnessAnnotationDatabase- Parameters:
o- an XMethod, XField, or XMethodParametergetMinimal- TODO: what does this mean?- Returns:
- resolved NullnessAnnotation
-
getInheritedAnnotation
-
getInheritedAnnotation
-
getDirectAnnotation
-
assertsFirstParameterIsNonnull
-
parameterMustBeNonNull
Description copied from interface:INullnessAnnotationDatabaseDetermine whether given parameter must be non-null.- Specified by:
parameterMustBeNonNullin interfaceINullnessAnnotationDatabase- Parameters:
m- a methodparam- parameter (0 == first parameter)- Returns:
- true if the parameter must be non-null, false otherwise
-
getNullnessAnnotationClassDescriptor
Convert a NullnessAnnotation into the ClassDescriptor of the equivalent JSR-305 nullness type qualifier.- Parameters:
n- a NullnessAnnotation- Returns:
- ClassDescriptor of the equivalent JSR-305 nullness type qualifier
-
addDefaultAnnotation
Description copied from interface:INullnessAnnotationDatabaseAdd a default annotation to the database.- Specified by:
addDefaultAnnotationin interfaceINullnessAnnotationDatabase- Parameters:
target- one of AnnotationDatabase.METHOD, AnnotationDatabase.FIELD, AnnotationDatabase.PARAMETER, or AnnotationDatabase.ANYc- dotted class name of class default annotation pertains ton- the default NullnessAnnotation
-
addFieldAnnotation
public void addFieldAnnotation(String cName, String mName, String mSig, boolean isStatic, NullnessAnnotation annotation) Description copied from interface:INullnessAnnotationDatabaseAdd a field annotation to the database.- Specified by:
addFieldAnnotationin interfaceINullnessAnnotationDatabase- Parameters:
cName- dotted class namemName- field namemSig- field signatureisStatic- true if field is static, false otherwiseannotation- NullnessAnnotation to add
-
getXMethod
-
addMethodAnnotation
public void addMethodAnnotation(String cName, String mName, String sig, boolean isStatic, NullnessAnnotation annotation) Description copied from interface:INullnessAnnotationDatabaseAdd a method annotation to the database.- Specified by:
addMethodAnnotationin interfaceINullnessAnnotationDatabase- Parameters:
cName- dotted class namemName- method namesig- method signatureisStatic- true if method is static, false otherwiseannotation- NullnessAnnotation to add
-
addMethodParameterAnnotation
public void addMethodParameterAnnotation(@DottedClassName String cName, String mName, String sig, boolean isStatic, int param, NullnessAnnotation annotation) Description copied from interface:INullnessAnnotationDatabaseAdd a method parameter annotation to the database.- Specified by:
addMethodParameterAnnotationin interfaceINullnessAnnotationDatabase- Parameters:
cName- dotted class namemName- method namesig- method signatureisStatic- true if method is static, false otherwiseparam- parameter (0 == first parameter)annotation- the NullnessAnnotation to add
-
loadAuxiliaryAnnotations
public void loadAuxiliaryAnnotations()Description copied from interface:INullnessAnnotationDatabaseLoad "built-in" annotations that might not be evident from the analyzed/referenced code.- Specified by:
loadAuxiliaryAnnotationsin interfaceINullnessAnnotationDatabase
-
toNullnessAnnotation
@CheckForNull private NullnessAnnotation toNullnessAnnotation(@CheckForNull TypeQualifierAnnotation tqa) Convert a Nonnull-based TypeQualifierAnnotation into a NullnessAnnotation.- Parameters:
tqa- Nonnull-based TypeQualifierAnnotation- Returns:
- corresponding NullnessAnnotation
-