Class ClassMemberInfo

java.lang.Object
io.github.classgraph.ClassMemberInfo
All Implemented Interfaces:
HasName
Direct Known Subclasses:
FieldInfo, MethodInfo

public abstract class ClassMemberInfo extends Object implements HasName
Holds metadata about class members of a class encountered during a scan. All values are taken directly out of the classfile for the class.
  • Constructor Details

    • ClassMemberInfo

      public ClassMemberInfo(String definingClassName, String memberName, int modifiers, String typeDescriptorStr, String typeSignatureStr, AnnotationInfoList annotationInfo)
      Constructor.
      Parameters:
      definingClassName - The class the member is defined within.
      memberName - The name of the class member.
      modifiers - The class member modifiers.
      typeDescriptorStr - The class member type descriptor.
      typeSignatureStr - The class member type signature.
      annotationInfo - AnnotationInfo for any annotations on the class member.
  • Method Details

    • getClassInfo

      public ClassInfo getClassInfo()
      Get the ClassInfo object for the class that declares this class member.
      Returns:
      The ClassInfo object for the declaring class.
      See Also:
    • getClassName

      public String getClassName()
      Get the name of the class that declares this member.
      Returns:
      The name of the declaring class.
      See Also:
    • getName

      public String getName()
      Get the name of the class member.
      Specified by:
      getName in interface HasName
      Returns:
      The name of the class member.
    • getModifiers

      public int getModifiers()
      Returns the modifier bits for the class member.
      Returns:
      The modifier bits for the class member.
    • getModifiersStr

      public abstract String getModifiersStr()
      Get the modifiers as a string, e.g. "public static final". For the modifier bits, call getModifiers().
      Returns:
      The modifiers modifiers, as a string.
    • isPublic

      public boolean isPublic()
      Returns true if this class member is public.
      Returns:
      True if the class member is public.
    • isPrivate

      public boolean isPrivate()
      Returns true if this class member is private.
      Returns:
      True if the class member is private.
    • isProtected

      public boolean isProtected()
      Returns true if this class member is protected.
      Returns:
      True if the class member is protected.
    • isStatic

      public boolean isStatic()
      Returns true if this class member is static.
      Returns:
      True if the class member is static.
    • isFinal

      public boolean isFinal()
      Returns true if this class member is final.
      Returns:
      True if the class member is final.
    • isSynthetic

      public boolean isSynthetic()
      Returns true if this class member is synthetic.
      Returns:
      True if the class member is synthetic.
    • getTypeDescriptor

      public abstract HierarchicalTypeSignature getTypeDescriptor()
      Returns the parsed type descriptor for the class member, which will not include type parameters. If you need generic type parameters, call getTypeSignature() instead.
      Returns:
      The parsed type descriptor string for the class member.
    • getTypeDescriptorStr

      public String getTypeDescriptorStr()
      Returns the type descriptor string for the class member, which will not include type parameters. If you need generic type parameters, call getTypeSignatureStr() instead.
      Returns:
      The type descriptor string for the class member.
    • getTypeSignature

      public abstract HierarchicalTypeSignature getTypeSignature()
      Returns the parsed type signature for the class member, possibly including type parameters. If this returns null, that no type signature information is available for this class member, call getTypeDescriptor() instead.
      Returns:
      The parsed type signature for the class member, or null if not available.
      Throws:
      IllegalArgumentException - if the class member type signature cannot be parsed (this should only be thrown in the case of classfile corruption, or a compiler bug that causes an invalid type signature to be written to the classfile).
    • getTypeSignatureStr

      public String getTypeSignatureStr()
      Returns the type signature string for the class member, possibly including type parameters. If this returns null, indicating that no type signature information is available for this class member, call getTypeDescriptorStr() instead.
      Returns:
      The type signature string for the class member, or null if not available.
    • getTypeSignatureOrTypeDescriptor

      public abstract HierarchicalTypeSignature getTypeSignatureOrTypeDescriptor()
      Returns the type signature for the class member, possibly including type parameters. If the type signature is null, indicating that no type signature information is available for this class member, returns the type descriptor instead.
      Returns:
      The parsed type signature for the class member, or if not available, the parsed type descriptor for the class member.
    • getTypeSignatureOrTypeDescriptorStr

      public String getTypeSignatureOrTypeDescriptorStr()
      Returns the type signature string for the class member, possibly including type parameters. If the type signature string is null, indicating that no type signature information is available for this class member, returns the type descriptor string instead.
      Returns:
      The type signature string for the class member, or if not available, the type descriptor string for the class member.
    • getAnnotationInfo

      public AnnotationInfoList getAnnotationInfo()
      Get a list of annotations on this class member, along with any annotation parameter values, wrapped in AnnotationInfo objects.
      Returns:
      A list of annotations on this class member, along with any annotation parameter values, wrapped in AnnotationInfo objects, or the empty list if none.
    • getAnnotationInfo

      public AnnotationInfo getAnnotationInfo(Class<? extends Annotation> annotation)
      Get a the non-Repeatable annotation on this class member, or null if the class member does not have the annotation. (Use getAnnotationInfoRepeatable(Class) for Repeatable annotations.)
      Parameters:
      annotation - The annotation.
      Returns:
      An AnnotationInfo object representing the annotation on this class member, or null if the class member does not have the annotation.
    • getAnnotationInfo

      public AnnotationInfo getAnnotationInfo(String annotationName)
      Get a the named non-Repeatable annotation on this class member, or null if the class member does not have the named annotation. (Use getAnnotationInfoRepeatable(String) for Repeatable annotations.)
      Parameters:
      annotationName - The annotation name.
      Returns:
      An AnnotationInfo object representing the named annotation on this class member, or null if the class member does not have the named annotation.
    • getAnnotationInfoRepeatable

      public AnnotationInfoList getAnnotationInfoRepeatable(Class<? extends Annotation> annotation)
      Get a the Repeatable annotation on this class member, or the empty list if the class member does not have the annotation.
      Parameters:
      annotation - The annotation.
      Returns:
      An AnnotationInfoList of all instances of the annotation on this class member, or the empty list if the class member does not have the annotation.
    • getAnnotationInfoRepeatable

      public AnnotationInfoList getAnnotationInfoRepeatable(String annotationName)
      Get a the named Repeatable annotation on this class member, or the empty list if the class member does not have the named annotation.
      Parameters:
      annotationName - The annotation name.
      Returns:
      An AnnotationInfoList of all instances of the named annotation on this class member, or the empty list if the class member does not have the named annotation.
    • hasAnnotation

      public boolean hasAnnotation(Class<? extends Annotation> annotation)
      Check if the class member has a given annotation.
      Parameters:
      annotation - The annotation.
      Returns:
      true if this class member has the annotation.
    • hasAnnotation

      public boolean hasAnnotation(String annotationName)
      Check if the class member has a given named annotation.
      Parameters:
      annotationName - The name of an annotation.
      Returns:
      true if this class member has the named annotation.
    • toStringWithSimpleNames

      public String toStringWithSimpleNames()
      Render to string, using only simple names for classes.
      Returns:
      the string representation, using simple names for classes.
    • toString

      public String toString()
      Render to string.
      Overrides:
      toString in class Object
      Returns:
      the string representation.