Package io.github.classgraph
Class TypeArgument
- java.lang.Object
-
- io.github.classgraph.ScanResultObject
-
- io.github.classgraph.HierarchicalTypeSignature
-
- io.github.classgraph.TypeArgument
-
public final class TypeArgument extends HierarchicalTypeSignature
A type argument.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTypeArgument.WildcardA type wildcard.
-
Field Summary
Fields Modifier and Type Field Description private ReferenceTypeSignaturetypeSignatureType signature (will be null if wildcard == ANY).private TypeArgument.WildcardwildcardA wildcard type.-
Fields inherited from class io.github.classgraph.HierarchicalTypeSignature
typeAnnotationInfo
-
Fields inherited from class io.github.classgraph.ScanResultObject
classRef, scanResult
-
-
Constructor Summary
Constructors Modifier Constructor Description privateTypeArgument(TypeArgument.Wildcard wildcard, ReferenceTypeSignature typeSignature)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddTypeAnnotation(java.util.List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo)Add a type annotation.booleanequals(java.lang.Object obj)voidfindReferencedClassNames(java.util.Set<java.lang.String> refdClassNames)Get the names of any classes referenced in the type signature.protected ClassInfogetClassInfo()Get theClassInfoobject for the referenced class, or null if the referenced class was not encountered during scanning (i.e.protected java.lang.StringgetClassName()The name of the class (used byScanResultObject.getClassInfo()to fetch theClassInfoobject for the class).ReferenceTypeSignaturegetTypeSignature()Get the type signature associated with the wildcard (or null, if the wildcard is ANY).TypeArgument.WildcardgetWildcard()Get the type wildcard, which is one of {NONE, ANY, EXTENDS, SUPER}.inthashCode()private static TypeArgumentparse(Parser parser, java.lang.String definingClassName)Parse a type argument.(package private) static java.util.List<TypeArgument>parseList(Parser parser, java.lang.String definingClassName)Parse a list of type arguments.(package private) voidsetScanResult(ScanResult scanResult)Set ScanResult backreferences in info objects after scan has completed.protected voidtoStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, java.lang.StringBuilder buf)Render type signature to string.-
Methods inherited from class io.github.classgraph.HierarchicalTypeSignature
addTypeAnnotation, getTypeAnnotationInfo, toString
-
Methods inherited from class io.github.classgraph.ScanResultObject
findReferencedClassInfo, findReferencedClassInfo, loadClass, loadClass, loadClass, loadClass, toString, toString, toStringWithSimpleNames
-
-
-
-
Field Detail
-
wildcard
private final TypeArgument.Wildcard wildcard
A wildcard type.
-
typeSignature
private final ReferenceTypeSignature typeSignature
Type signature (will be null if wildcard == ANY).
-
-
Constructor Detail
-
TypeArgument
private TypeArgument(TypeArgument.Wildcard wildcard, ReferenceTypeSignature typeSignature)
Constructor.- Parameters:
wildcard- The wildcard typetypeSignature- The type signature
-
-
Method Detail
-
getWildcard
public TypeArgument.Wildcard getWildcard()
Get the type wildcard, which is one of {NONE, ANY, EXTENDS, SUPER}.- Returns:
- The type wildcard.
-
getTypeSignature
public ReferenceTypeSignature getTypeSignature()
Get the type signature associated with the wildcard (or null, if the wildcard is ANY).- Returns:
- The type signature.
-
addTypeAnnotation
protected void addTypeAnnotation(java.util.List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo)
Description copied from class:HierarchicalTypeSignatureAdd a type annotation.- Specified by:
addTypeAnnotationin classHierarchicalTypeSignature- Parameters:
typePath- the type pathannotationInfo- the annotation
-
parse
private static TypeArgument parse(Parser parser, java.lang.String definingClassName) throws ParseException
Parse a type argument.- Parameters:
parser- The parser.definingClassName- The name of the defining class (for resolving type variables).- Returns:
- The parsed method type signature.
- Throws:
ParseException- If method type signature could not be parsed.
-
parseList
static java.util.List<TypeArgument> parseList(Parser parser, java.lang.String definingClassName) throws ParseException
Parse a list of type arguments.- Parameters:
parser- The parser.definingClassName- The name of the defining class (for resolving type variables).- Returns:
- The list of type arguments.
- Throws:
ParseException- If type signature could not be parsed.
-
getClassName
protected java.lang.String getClassName()
Description copied from class:ScanResultObjectThe name of the class (used byScanResultObject.getClassInfo()to fetch theClassInfoobject for the class).- Specified by:
getClassNamein classScanResultObject- Returns:
- The class name.
-
getClassInfo
protected ClassInfo getClassInfo()
Description copied from class:ScanResultObjectGet theClassInfoobject 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:
getClassInfoin classScanResultObject- Returns:
- The
ClassInfoobject for the referenced class.
-
setScanResult
void setScanResult(ScanResult scanResult)
Description copied from class:ScanResultObjectSet ScanResult backreferences in info objects after scan has completed.- Overrides:
setScanResultin classHierarchicalTypeSignature- Parameters:
scanResult- the scan result
-
findReferencedClassNames
public void findReferencedClassNames(java.util.Set<java.lang.String> refdClassNames)
Get the names of any classes referenced in the type signature.- Parameters:
refdClassNames- the referenced class names.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toStringInternal
protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, java.lang.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.
-
-