Package io.github.classgraph
Class ClassTypeSignature
java.lang.Object
io.github.classgraph.ScanResultObject
io.github.classgraph.HierarchicalTypeSignature
io.github.classgraph.ClassTypeSignature
A class type signature (called "ClassSignature" in the classfile documentation).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ClassInfo
The class info.private final ClassRefTypeSignature
The superclass type.private final List
<ClassRefTypeSignature> The superinterface signatures.private final List
<ClassRefOrTypeVariableSignature> The throws signatures (usually null).(package private) final List
<TypeParameter> The class type parameters.Fields inherited from class io.github.classgraph.HierarchicalTypeSignature
typeAnnotationInfo
Fields inherited from class io.github.classgraph.ScanResultObject
classRef, scanResult
-
Constructor Summary
ConstructorsModifierConstructorDescription(package private)
ClassTypeSignature
(ClassInfo classInfo, ClassInfo superclass, ClassInfoList interfaces) Constructor used to create synthetic class type descriptor (#662).private
ClassTypeSignature
(ClassInfo classInfo, List<TypeParameter> typeParameters, ClassRefTypeSignature superclassSignature, List<ClassRefTypeSignature> superinterfaceSignatures, List<ClassRefOrTypeVariableSignature> throwsSignatures) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addTypeAnnotation
(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Add a type annotation.boolean
protected void
findReferencedClassInfo
(Map<String, ClassInfo> classNameToClassInfo, Set<ClassInfo> refdClassInfo, LogNode log) GetClassInfo
objects for any classes referenced in the type descriptor or type signature.protected void
findReferencedClassNames
(Set<String> refdClassNames) Get the names of any classes referenced in the type signature.protected ClassInfo
Get theClassInfo
object for the referenced class, or null if the referenced class was not encountered during scanning (i.e.protected String
The name of the class (used byScanResultObject.getClassInfo()
to fetch theClassInfo
object for the class).Get the type signature for the superclass (possibly null in the case ofObject
, since it doesn't have a superclass).Get the type signatures of any superinterfaces.(package private) List
<ClassRefOrTypeVariableSignature> Gets the throws signatures.Get the type parameters for the class.int
hashCode()
(package private) static ClassTypeSignature
Parse a class type signature or class type descriptor.(package private) void
setScanResult
(ScanResult scanResult) Set ScanResult backreferences in info objects after scan has completed.protected void
toStringInternal
(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) To string internal.(package private) void
toStringInternal
(String className, boolean useSimpleNames, int modifiers, boolean isAnnotation, boolean isInterface, AnnotationInfoList annotationsToExclude, StringBuilder buf) Render into String form.Methods inherited from class io.github.classgraph.HierarchicalTypeSignature
addTypeAnnotation, getTypeAnnotationInfo, toString
Methods inherited from class io.github.classgraph.ScanResultObject
findReferencedClassInfo, loadClass, loadClass, loadClass, loadClass, toString, toString, toStringWithSimpleNames
-
Field Details
-
classInfo
The class info. -
typeParameters
The class type parameters. -
superclassSignature
The superclass type. -
superinterfaceSignatures
The superinterface signatures. -
throwsSignatures
The throws signatures (usually null). These are only present in Scala classes, if the class is marked up with@throws
, and they violate the classfile spec (#495), but we parse them anyway.
-
-
Constructor Details
-
ClassTypeSignature
private ClassTypeSignature(ClassInfo classInfo, List<TypeParameter> typeParameters, ClassRefTypeSignature superclassSignature, List<ClassRefTypeSignature> superinterfaceSignatures, List<ClassRefOrTypeVariableSignature> throwsSignatures) Constructor.- Parameters:
classInfo
- theClassInfo
object of the class.typeParameters
- The class type parameters.superclassSignature
- The superclass signature.superinterfaceSignatures
- The superinterface signature(s).throwsSignatures
- the throws signatures (these are actually invalid, but can be added by Scala: #495). Usually null.
-
ClassTypeSignature
ClassTypeSignature(ClassInfo classInfo, ClassInfo superclass, ClassInfoList interfaces) Constructor used to create synthetic class type descriptor (#662).- Parameters:
classInfo
- The class.superclass
- The superclass.interfaces
- The implemented interfaces.
-
-
Method Details
-
getTypeParameters
Get the type parameters for the class.- Returns:
- The type parameters for the class.
-
getSuperclassSignature
Get the type signature for the superclass (possibly null in the case ofObject
, since it doesn't have a superclass).- Returns:
- The type signature for the superclass, or null if no superclass (i.e. for
Object
).
-
getSuperinterfaceSignatures
Get the type signatures of any superinterfaces.- Returns:
- The type signatures of any superinterfaces.
-
getThrowsSignatures
List<ClassRefOrTypeVariableSignature> getThrowsSignatures()Gets the throws signatures. These are invalid according to the classfile spec (so this method is currently non-public), but may be added by the Scala compiler. (See bug #495.)- Returns:
- the throws signatures
-
addTypeAnnotation
protected void addTypeAnnotation(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Description copied from class:HierarchicalTypeSignature
Add a type annotation.- Specified by:
addTypeAnnotation
in classHierarchicalTypeSignature
- Parameters:
typePath
- the type pathannotationInfo
- the annotation
-
getClassName
Description copied from class:ScanResultObject
The name of the class (used byScanResultObject.getClassInfo()
to fetch theClassInfo
object for the class).- Specified by:
getClassName
in classScanResultObject
- Returns:
- The class name.
-
getClassInfo
Description copied from class:ScanResultObject
Get theClassInfo
object for the referenced class, or null if the referenced class was not encountered during scanning (i.e. no ClassInfo object was created for the class during scanning). N.B. even if this method returns null,ScanResultObject.loadClass()
may be able to load the referenced class by name.- Overrides:
getClassInfo
in classScanResultObject
- Returns:
- The
ClassInfo
object for the referenced class.
-
setScanResult
Description copied from class:ScanResultObject
Set ScanResult backreferences in info objects after scan has completed.- Overrides:
setScanResult
in classHierarchicalTypeSignature
- Parameters:
scanResult
- the scan result
-
findReferencedClassNames
Get the names of any classes referenced in the type signature.- Parameters:
refdClassNames
- the referenced class names.
-
findReferencedClassInfo
protected void findReferencedClassInfo(Map<String, ClassInfo> classNameToClassInfo, Set<ClassInfo> refdClassInfo, LogNode log) GetClassInfo
objects for any classes referenced in the type descriptor or type signature.- Overrides:
findReferencedClassInfo
in classScanResultObject
- Parameters:
classNameToClassInfo
- the map from class name toClassInfo
.refdClassInfo
- the referenced class infolog
- the log
-
hashCode
public int hashCode() -
equals
-
toStringInternal
void toStringInternal(String className, boolean useSimpleNames, int modifiers, boolean isAnnotation, boolean isInterface, AnnotationInfoList annotationsToExclude, StringBuilder buf) Render into String form.- Parameters:
className
- The class nameuseSimpleNames
- the use simple namesmodifiers
- The class modifiers.isAnnotation
- True if the class is an annotation.isInterface
- True if the class is an interface.annotationsToExclude
- the annotations to excludebuf
- the buf
-
toStringInternal
protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) To string internal.- Specified by:
toStringInternal
in classHierarchicalTypeSignature
- Parameters:
useSimpleNames
- the use simple namesannotationsToExclude
- the annotations to excludebuf
- the buf
-
parse
Parse a class type signature or class type descriptor.- Parameters:
typeDescriptor
- The class type signature or class type descriptor to parse.classInfo
- the class info- Returns:
- The parsed class type signature or class type descriptor.
- Throws:
ParseException
- If the class type signature could not be parsed.
-