Class ClassRefTypeSignature
java.lang.Object
io.github.classgraph.HierarchicalTypeSignature
io.github.classgraph.TypeSignature
io.github.classgraph.ReferenceTypeSignature
io.github.classgraph.ClassRefOrTypeVariableSignature
io.github.classgraph.ClassRefTypeSignature
A class reference type signature (called "ClassTypeSignature" in the classfile documentation).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Class<?> The class ref, once the class is loaded.protected ScanResultThe scan result.Fields inherited from class HierarchicalTypeSignature
typeAnnotationInfo -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddTypeAnnotation(List<io.github.classgraph.Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Add a type annotation to this type.booleanbooleanCompare base types, ignoring generic type parameters.protected voidfindReferencedClassNames(Set<String> refdClassNames) Get the names of any classes referenced in the type signature.Get the name of the class, without any suffixes.Get theClassInfoobject for the referenced class.protected StringThe name of the class (used byScanResultObject.getClassInfo()to fetch theClassInfoobject for the class).Get the name of the class, formed from the base name and any suffixes (suffixes are for inner class nesting, and are separated by '$'), but without any type arguments.Get all nested suffixes of the class (typically nested inner class names).Get a list of lists of type annotations for all nested suffixes of the class, one list per suffix.Get a list of type arguments for all nested suffixes of the class, one list per suffix.Get any type arguments of the base class.inthashCode()Class<?> Load the referenced class, if not already loaded, returning aClass<?>reference for the referenced class.Class<?> loadClass(boolean ignoreExceptions) Load the referenced class, if not already loaded, returning aClass<?>reference for the referenced class.toString()Render to string.protected voidtoStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) Render type signature to string.Render to string, using only simple names for classes.Methods inherited from class TypeSignature
findReferencedClassInfo, getTypeAnnotationInfoMethods inherited from class HierarchicalTypeSignature
addTypeAnnotation, toString
-
Field Details
-
scanResult
The scan result. -
classRef
The class ref, once the class is loaded.
-
-
Method Details
-
getBaseClassName
Get the name of the class, without any suffixes.- Returns:
- The name of the class.
- See Also:
-
getFullyQualifiedClassName
Get the name of the class, formed from the base name and any suffixes (suffixes are for inner class nesting, and are separated by '$'), but without any type arguments. For example,"xyz.Cls<String>.InnerCls<Integer>"is returned as"xyz.Cls$InnerCls". The intent of this method is that if you replace '.' with '/', and then add the suffix ".class", you end up with the path of the classfile relative to the package root.For comparison,
Object.toString()uses '.' to separate suffixes, and includes type parameters, whereas this method uses '$' to separate suffixes, and does not include type parameters.- Returns:
- The fully-qualified name of the class, including suffixes but without type arguments.
-
getTypeArguments
Get any type arguments of the base class.- Returns:
- The type arguments for the base class.
-
getSuffixes
-
getSuffixTypeArguments
Get a list of type arguments for all nested suffixes of the class, one list per suffix.- Returns:
- The list of type arguments for the suffixes (nested inner classes), one list per suffix, or the empty list if none.
-
getSuffixTypeAnnotationInfo
Get a list of lists of type annotations for all nested suffixes of the class, one list per suffix.- Returns:
- The list of lists of type annotations for the suffixes (nested inner classes), one list per suffix, or null if none.
-
addTypeAnnotation
protected void addTypeAnnotation(List<io.github.classgraph.Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Description copied from class:TypeSignatureAdd a type annotation to this type.- Specified by:
addTypeAnnotationin classTypeSignature- Parameters:
typePath- The type path.annotationInfo- The annotation to add.
-
loadClass
Load the referenced class, if not already loaded, returning aClass<?>reference for the referenced class. (Called byAnnotationClassRef.loadClass().)- Parameters:
ignoreExceptions- if true, ignore exceptions and instead return null if the class could not be loaded.- Returns:
- The
Class<?>reference for the referenced class. - Throws:
IllegalArgumentException- if the class could not be loaded and ignoreExceptions was false.
-
loadClass
Load the referenced class, if not already loaded, returning aClass<?>reference for the referenced class. (Called byAnnotationClassRef.loadClass().)- Returns:
- The
Class<?>reference for the referenced class. - Throws:
IllegalArgumentException- if the class could not be loaded.
-
getClassName
-
getClassInfo
Get theClassInfoobject for the referenced class.- Returns:
- The
ClassInfoobject for the referenced class, or null if the referenced class was not encountered during scanning (i.e. if no ClassInfo object was created for the class during scanning). N.B. even if this method returns null,loadClass()may be able to load the referenced class by name.
-
findReferencedClassNames
Get the names of any classes referenced in the type signature.- Overrides:
findReferencedClassNamesin classTypeSignature- Parameters:
refdClassNames- the referenced class names.
-
hashCode
-
equals
-
equalsIgnoringTypeParams
Description copied from class:TypeSignatureCompare base types, ignoring generic type parameters.- Specified by:
equalsIgnoringTypeParamsin classTypeSignature- Parameters:
other- the otherTypeSignatureto compare to.- Returns:
- True if the two
TypeSignatureobjects are equal, ignoring type parameters.
-
toStringInternal
protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) Description copied from class:HierarchicalTypeSignatureRender type signature to string.- Specified by:
toStringInternalin classHierarchicalTypeSignature- Parameters:
useSimpleNames- whether to use simple names for classes.annotationsToExclude- toplevel annotations to exclude, to eliminate duplication (toplevel annotations are both class/field/method annotations and type annotations).buf- theStringBuilderto write to.
-
toStringWithSimpleNames
Render to string, using only simple names for classes.- Returns:
- the string representation, using simple names for classes.
-
toString
-