Class ClassInfo
- java.lang.Object
-
- edu.umd.cs.findbugs.classfile.ClassDescriptor
-
- edu.umd.cs.findbugs.classfile.analysis.ClassNameAndSuperclassInfo
-
- edu.umd.cs.findbugs.classfile.analysis.ClassInfo
-
- All Implemented Interfaces:
AccessibleEntity
,XClass
,AnnotatedObject
,java.io.Serializable
,java.lang.Comparable<ClassDescriptor>
public class ClassInfo extends ClassNameAndSuperclassInfo implements XClass
ClassInfo represents important metadata about a loaded class, such as its superclass, access flags, codebase entry, etc.- Author:
- David Hovemeyer
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ClassInfo.Builder
-
Field Summary
-
Fields inherited from class edu.umd.cs.findbugs.classfile.ClassDescriptor
EMPTY_ARRAY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAnnotation(AnnotationValue annotationValue)
Destructively add an annotation to the object.XField
findField(java.lang.String name, java.lang.String signature, boolean isStatic)
Find an XField matching given parameters.XMethod
findMatchingMethod(MethodDescriptor descriptor)
Find XMethod matching the name and signature of the supplied method MethodDescriptor.XMethod
findMethod(MethodDescriptor descriptor)
Find XMethod matching given MethodDescriptor.XMethod
findMethod(java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
Find an XMethod matching given parameters.AnnotationValue
getAnnotation(ClassDescriptor desc)
java.util.Collection<ClassDescriptor>
getAnnotationDescriptors()
java.util.Collection<AnnotationValue>
getAnnotations()
AnnotatedObject
getContainingScope()
AnnotatedObject
getContainingScope0()
java.lang.annotation.ElementType
getElementType()
ClassDescriptor
getImmediateEnclosingClass()
Get the ClassDescriptor of the immediate enclosing class, or null if this XClass is not a nested or inner class.java.lang.String
getPackageName()
Get the name of the package in dotted format.java.lang.String
getSlashedPackageName()
java.lang.String
getSource()
java.lang.String
getSourceSignature()
java.util.List<? extends XField>
getXFields()
java.util.List<? extends XMethod>
getXMethods()
java.util.List<? extends XMethod>
getXMethodsInCallOrder()
boolean
hasStubs()
boolean
usesConcurrency()
-
Methods inherited from class edu.umd.cs.findbugs.classfile.analysis.ClassNameAndSuperclassInfo
getAccessFlags, getCalledClassDescriptors, getClassDescriptor, getCodeBaseEntry, getInterfaceDescriptorList, getMajorVersion, getMinorVersion, getSuperclassDescriptor, isAbstract, isAnnotation, isDeprecated, isFinal, isInterface, isPrivate, isProtected, isPublic, isStatic, isSynthetic
-
Methods inherited from class edu.umd.cs.findbugs.classfile.ClassDescriptor
compareTo, createClassDescriptor, createClassDescriptor, createClassDescriptor, createClassDescriptorFromDottedClassName, createClassDescriptorFromSignature, equals, fromFieldSignature, fromResourceName, getClassName, getDottedClassName, getSignature, getSimpleName, getXClass, hashCode, isAnonymousClass, isArray, isClassResource, matches, throwClassNotFoundException, toDottedClassName, toResourceName, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface edu.umd.cs.findbugs.ba.AccessibleEntity
getAccessFlags, getClassDescriptor, isDeprecated, isFinal, isPrivate, isProtected, isPublic, isStatic, isSynthetic
-
Methods inherited from interface edu.umd.cs.findbugs.classfile.analysis.AnnotatedObject
getClassDescriptor, isSynthetic
-
Methods inherited from interface edu.umd.cs.findbugs.ba.XClass
getCalledClassDescriptors, getInterfaceDescriptorList, getSuperclassDescriptor, isAbstract, isInterface
-
-
-
-
Method Detail
-
getXFields
public java.util.List<? extends XField> getXFields()
- Specified by:
getXFields
in interfaceXClass
-
getXMethods
public java.util.List<? extends XMethod> getXMethods()
- Specified by:
getXMethods
in interfaceXClass
-
getXMethodsInCallOrder
public java.util.List<? extends XMethod> getXMethodsInCallOrder()
-
findMethod
public XMethod findMethod(java.lang.String methodName, java.lang.String methodSig, boolean isStatic)
Description copied from interface:XClass
Find an XMethod matching given parameters.- Specified by:
findMethod
in interfaceXClass
- Parameters:
methodName
- name of the methodmethodSig
- signature of the methodisStatic
- true if the method is static, false if not- Returns:
- matching XMethod, or null if there is no matching XMethod
-
findMethod
public XMethod findMethod(MethodDescriptor descriptor)
Description copied from interface:XClass
Find XMethod matching given MethodDescriptor.- Specified by:
findMethod
in interfaceXClass
- Parameters:
descriptor
- a MethodDescriptor- Returns:
- matching XMethod, or null if there is no matching method
-
findMatchingMethod
public XMethod findMatchingMethod(MethodDescriptor descriptor)
Description copied from interface:XClass
Find XMethod matching the name and signature of the supplied method MethodDescriptor. The class descriptor of the argument is ignored.- Specified by:
findMatchingMethod
in interfaceXClass
- Parameters:
descriptor
- a MethodDescriptor- Returns:
- matching XMethod, or null if there is no matching method
-
findField
public XField findField(java.lang.String name, java.lang.String signature, boolean isStatic)
Description copied from interface:XClass
Find an XField matching given parameters.
-
getImmediateEnclosingClass
public ClassDescriptor getImmediateEnclosingClass()
Description copied from interface:XClass
Get the ClassDescriptor of the immediate enclosing class, or null if this XClass is not a nested or inner class.- Specified by:
getImmediateEnclosingClass
in interfaceXClass
- Returns:
- the ClassDescriptor of the immediate enclosing class, or null if this XClass is not a nested or inner class
-
getPackageName
public java.lang.String getPackageName()
Description copied from class:ClassDescriptor
Get the name of the package in dotted format.- Overrides:
getPackageName
in classClassDescriptor
- Returns:
- the name of the package in dotted format
-
getSlashedPackageName
public java.lang.String getSlashedPackageName()
-
getAnnotationDescriptors
public java.util.Collection<ClassDescriptor> getAnnotationDescriptors()
- Specified by:
getAnnotationDescriptors
in interfaceAnnotatedObject
- Specified by:
getAnnotationDescriptors
in interfaceXClass
-
getAnnotations
public java.util.Collection<AnnotationValue> getAnnotations()
- Specified by:
getAnnotations
in interfaceAnnotatedObject
-
getAnnotation
public AnnotationValue getAnnotation(ClassDescriptor desc)
- Specified by:
getAnnotation
in interfaceAnnotatedObject
- Specified by:
getAnnotation
in interfaceXClass
-
addAnnotation
public void addAnnotation(AnnotationValue annotationValue)
Destructively add an annotation to the object. In general, this is not a great idea, since it could cause the same class to appear to have different annotations at different times. However, this method is necessary for "built-in" annotations that FindBugs adds to system classes. As long as we add such annotations early enough that nobody will notice, we should be ok.- Parameters:
annotationValue
- an AnnotationValue to add to the class
-
getElementType
public java.lang.annotation.ElementType getElementType()
- Specified by:
getElementType
in interfaceAnnotatedObject
-
getSource
@CheckForNull public java.lang.String getSource()
-
getContainingScope
@CheckForNull public AnnotatedObject getContainingScope()
- Specified by:
getContainingScope
in interfaceAnnotatedObject
-
getContainingScope0
@CheckForNull public AnnotatedObject getContainingScope0()
-
getSourceSignature
public java.lang.String getSourceSignature()
- Specified by:
getSourceSignature
in interfaceXClass
-
usesConcurrency
public boolean usesConcurrency()
- Specified by:
usesConcurrency
in interfaceXClass
-
-