Class ClassInfo

All Implemented Interfaces:
AccessibleEntity, XClass, AnnotatedObject, Serializable, 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:
  • Method Details

    • getXFields

      public List<? extends XField> getXFields()
      Specified by:
      getXFields in interface XClass
    • getXMethods

      public List<? extends XMethod> getXMethods()
      Specified by:
      getXMethods in interface XClass
    • getXMethodsInCallOrder

      public List<? extends XMethod> getXMethodsInCallOrder()
    • findMethod

      public XMethod findMethod(String methodName, String methodSig, boolean isStatic)
      Description copied from interface: XClass
      Find an XMethod matching given parameters.
      Specified by:
      findMethod in interface XClass
      Parameters:
      methodName - name of the method
      methodSig - signature of the method
      isStatic - 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 interface XClass
      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 interface XClass
      Parameters:
      descriptor - a MethodDescriptor
      Returns:
      matching XMethod, or null if there is no matching method
    • findField

      public XField findField(String name, String signature, boolean isStatic)
      Description copied from interface: XClass
      Find an XField matching given parameters.
      Specified by:
      findField in interface XClass
      Parameters:
      name - name of the field
      signature - signature of the field
      isStatic - true if field is static, false if not
      Returns:
      XField, or null if there is no matching XField
    • 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 interface XClass
      Returns:
      the ClassDescriptor of the immediate enclosing class, or null if this XClass is not a nested or inner class
    • getPackageName

      public String getPackageName()
      Description copied from class: ClassDescriptor
      Get the name of the package in dotted format.
      Overrides:
      getPackageName in class ClassDescriptor
      Returns:
      the name of the package in dotted format
    • getSlashedPackageName

      public String getSlashedPackageName()
    • getAnnotationDescriptors

      public Collection<ClassDescriptor> getAnnotationDescriptors()
      Specified by:
      getAnnotationDescriptors in interface AnnotatedObject
      Specified by:
      getAnnotationDescriptors in interface XClass
    • getAnnotations

      public Collection<AnnotationValue> getAnnotations()
      Specified by:
      getAnnotations in interface AnnotatedObject
    • getAnnotation

      public AnnotationValue getAnnotation(ClassDescriptor desc)
      Specified by:
      getAnnotation in interface AnnotatedObject
      Specified by:
      getAnnotation in interface XClass
    • 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 ElementType getElementType()
      Specified by:
      getElementType in interface AnnotatedObject
    • getSource

      @CheckForNull public String getSource()
      Specified by:
      getSource in interface XClass
      Returns:
      the Source attribute
    • getContainingScope

      @CheckForNull public AnnotatedObject getContainingScope()
      Specified by:
      getContainingScope in interface AnnotatedObject
    • getContainingScope0

      @CheckForNull public AnnotatedObject getContainingScope0()
    • getSourceSignature

      public String getSourceSignature()
      Specified by:
      getSourceSignature in interface XClass
    • usesConcurrency

      public boolean usesConcurrency()
      Specified by:
      usesConcurrency in interface XClass
    • hasStubs

      public boolean hasStubs()
      Specified by:
      hasStubs in interface XClass