Package edu.umd.cs.findbugs.ba
Class AnnotationDatabase<AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>>
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.AnnotationDatabase<AnnotationEnum>
-
- Direct Known Subclasses:
CheckReturnAnnotationDatabase
,DefaultEncodingDetector.DefaultEncodingAnnotationDatabase
,NullnessAnnotationDatabase
public class AnnotationDatabase<AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>> extends java.lang.Object
Database to keep track of annotated fields/methods/classes/etc. for a particular kind of annotation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AnnotationDatabase.Target
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
addClassOnly
(package private) java.util.Map<java.lang.Object,AnnotationEnum>
cachedMaximal
(package private) java.util.Map<java.lang.Object,AnnotationEnum>
cachedMinimal
(package private) static boolean
DEBUG
private java.util.Map<AnnotationDatabase.Target,java.util.Map<java.lang.String,AnnotationEnum>>
defaultAnnotation
private java.util.Map<java.lang.Object,AnnotationEnum>
directAnnotations
static boolean
IGNORE_BUILTIN_ANNOTATIONS
private java.util.Set<AnnotationEnum>
seen
-
Constructor Summary
Constructors Constructor Description AnnotationDatabase()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDefaultAnnotation(AnnotationDatabase.Target target, java.lang.String c, AnnotationEnum n)
protected void
addDefaultMethodAnnotation(java.lang.String cName, AnnotationEnum annotation)
void
addDirectAnnotation(java.lang.Object o, AnnotationEnum n)
protected void
addFieldAnnotation(java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
protected void
addMethodAnnotation(java.lang.Class<?> clazz, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
protected void
addMethodAnnotation(java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
protected void
addMethodParameterAnnotation(java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, int param, AnnotationEnum annotation)
boolean
annotationIsDirect(java.lang.Object o)
boolean
anyAnnotations(AnnotationEnum n)
private boolean
classDefinesMethod(org.apache.bcel.classfile.JavaClass c, XMethod m)
AnnotationEnum
getDirectAnnotation(java.lang.Object o)
AnnotationEnum
getResolvedAnnotation(java.lang.Object o, boolean getMinimal)
AnnotationEnum
getUncachedResolvedAnnotation(java.lang.Object o, boolean getMinimal)
void
loadAuxiliaryAnnotations()
private AnnotationEnum
lookInOverriddenMethod(java.lang.Object originalQuery, java.lang.String classToLookIn, XMethod originalMethod, boolean getMinimal)
private boolean
onlyAppliesToReferenceParameters(AnnotationEnum annotation)
boolean
setAddClassOnly(boolean newValue)
-
-
-
Field Detail
-
DEBUG
static final boolean DEBUG
-
IGNORE_BUILTIN_ANNOTATIONS
public static final boolean IGNORE_BUILTIN_ANNOTATIONS
-
directAnnotations
private final java.util.Map<java.lang.Object,AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>> directAnnotations
-
defaultAnnotation
private final java.util.Map<AnnotationDatabase.Target,java.util.Map<java.lang.String,AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>>> defaultAnnotation
-
seen
private final java.util.Set<AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>> seen
-
cachedMinimal
java.util.Map<java.lang.Object,AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>> cachedMinimal
-
cachedMaximal
java.util.Map<java.lang.Object,AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>> cachedMaximal
-
addClassOnly
boolean addClassOnly
-
-
Method Detail
-
loadAuxiliaryAnnotations
public void loadAuxiliaryAnnotations()
-
addDirectAnnotation
public void addDirectAnnotation(java.lang.Object o, AnnotationEnum n)
-
addDefaultAnnotation
public void addDefaultAnnotation(AnnotationDatabase.Target target, java.lang.String c, AnnotationEnum n)
-
anyAnnotations
public boolean anyAnnotations(AnnotationEnum n)
-
getResolvedAnnotation
@CheckForNull public AnnotationEnum getResolvedAnnotation(java.lang.Object o, boolean getMinimal)
-
annotationIsDirect
public boolean annotationIsDirect(java.lang.Object o)
-
getUncachedResolvedAnnotation
@CheckForNull public AnnotationEnum getUncachedResolvedAnnotation(java.lang.Object o, boolean getMinimal)
-
getDirectAnnotation
public AnnotationEnum getDirectAnnotation(java.lang.Object o)
-
classDefinesMethod
private boolean classDefinesMethod(org.apache.bcel.classfile.JavaClass c, XMethod m)
-
lookInOverriddenMethod
private AnnotationEnum lookInOverriddenMethod(java.lang.Object originalQuery, java.lang.String classToLookIn, XMethod originalMethod, boolean getMinimal)
-
setAddClassOnly
public boolean setAddClassOnly(boolean newValue)
-
addDefaultMethodAnnotation
protected void addDefaultMethodAnnotation(java.lang.String cName, AnnotationEnum annotation)
-
addFieldAnnotation
protected void addFieldAnnotation(java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
-
addMethodAnnotation
protected void addMethodAnnotation(java.lang.Class<?> clazz, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
-
addMethodAnnotation
protected void addMethodAnnotation(@DottedClassName java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, AnnotationEnum annotation)
-
onlyAppliesToReferenceParameters
private boolean onlyAppliesToReferenceParameters(AnnotationEnum annotation)
-
addMethodParameterAnnotation
protected void addMethodParameterAnnotation(java.lang.String cName, java.lang.String mName, java.lang.String mSig, boolean isStatic, int param, AnnotationEnum annotation)
-
-