Package io.github.classgraph
Class TypeVariableSignature
A type variable signature.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) MethodTypeSignature
The method signature that this type variable is part of.private final String
The name of the class that this type variable is defined in.private final String
The type variable name.private TypeParameter
The resolved type parameter, if any.Fields inherited from class io.github.classgraph.HierarchicalTypeSignature
typeAnnotationInfo
Fields inherited from class io.github.classgraph.ScanResultObject
classRef, scanResult
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
TypeVariableSignature
(String typeVariableName, String definingClassName) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addTypeAnnotation
(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Add a type annotation to this type.boolean
boolean
Compare base types, ignoring generic type parameters.protected void
findReferencedClassNames
(Set<String> refdClassNames) Get the names of any classes referenced in the type signature.protected String
Return definingClassName, so that getClassInfo() returns theClassInfo
object for the containing class.getName()
Get the name of the type variable.int
hashCode()
(package private) static TypeVariableSignature
Parse a TypeVariableSignature.resolve()
Look up a type variable (e.g.(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) Render type signature to string.Returns the type variable along with its type bound, if available (e.g.Methods inherited from class io.github.classgraph.ReferenceTypeSignature
parseClassBound, parseReferenceTypeSignature
Methods inherited from class io.github.classgraph.TypeSignature
findReferencedClassInfo, getTypeAnnotationInfo, parse
Methods inherited from class io.github.classgraph.HierarchicalTypeSignature
addTypeAnnotation, toString
Methods inherited from class io.github.classgraph.ScanResultObject
findReferencedClassInfo, getClassInfo, loadClass, loadClass, loadClass, loadClass, toString, toString, toStringWithSimpleNames
-
Field Details
-
name
The type variable name. -
definingClassName
The name of the class that this type variable is defined in. -
containingMethodSignature
MethodTypeSignature containingMethodSignatureThe method signature that this type variable is part of. -
typeParameterCached
The resolved type parameter, if any.
-
-
Constructor Details
-
TypeVariableSignature
Constructor.- Parameters:
typeVariableName
- The type variable name.definingClassName
- the defining class name.
-
-
Method Details
-
getName
Get the name of the type variable.- Returns:
- The type variable name.
-
resolve
Look up a type variable (e.g. "T") in the defining method and/or enclosing class' type parameters, and return the type parameter with the same name (e.g. "T extends com.xyz.Cls").- Returns:
- the type parameter (e.g. "T extends com.xyz.Cls", or simply "T" if the type parameter does not have any bounds).
- Throws:
IllegalArgumentException
- if a type parameter with the same name as the type variable could not be found in the defining method or the enclosing class.
-
addTypeAnnotation
protected void addTypeAnnotation(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Description copied from class:TypeSignature
Add a type annotation to this type.- Specified by:
addTypeAnnotation
in classTypeSignature
- Parameters:
typePath
- The type path.annotationInfo
- The annotation to add.
-
parse
Parse a TypeVariableSignature.- Parameters:
parser
- the parserdefiningClassName
- the defining class name- Returns:
- the type variable signature
- Throws:
ParseException
- if parsing fails
-
getClassName
Return definingClassName, so that getClassInfo() returns theClassInfo
object for the containing class.- Specified by:
getClassName
in classScanResultObject
- Returns:
- the defining class name.
-
findReferencedClassNames
Get the names of any classes referenced in the type signature.- Overrides:
findReferencedClassNames
in classTypeSignature
- Parameters:
refdClassNames
- the referenced class names.
-
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
-
hashCode
public int hashCode() -
equals
-
equalsIgnoringTypeParams
Description copied from class:TypeSignature
Compare base types, ignoring generic type parameters.- Specified by:
equalsIgnoringTypeParams
in classTypeSignature
- Parameters:
other
- the otherTypeSignature
to compare to.- Returns:
- True if the two
TypeSignature
objects are equal, ignoring type parameters.
-
toStringWithTypeBound
Returns the type variable along with its type bound, if available (e.g. "X extends xyz.Cls"). You can get this in structured form by callingresolve()
. Returns just the type variable if there is no type bound, or if no type bound is known (i.e. ifresolve()
returns null).- Returns:
- The string representation.
-
toStringInternal
protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) Description copied from class:HierarchicalTypeSignature
Render type signature to string.- Specified by:
toStringInternal
in 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
- theStringBuilder
to write to.
-