Package io.github.classgraph
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 io.github.classgraph.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 bygetClassInfo()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 io.github.classgraph.TypeSignature
findReferencedClassInfo, getTypeAnnotationInfoMethods inherited from class io.github.classgraph.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
Get all nested suffixes of the class (typically nested inner class names).- Returns:
- The class suffixes (for inner classes), or the empty list if none.
-
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
The name of the class (used bygetClassInfo()to fetch theClassInfoobject for the class).- Returns:
- the fully-qualified class name, for classloading.
-
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
public int 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
Render to string.
-