Class MethodTypeSignature
java.lang.Object
io.github.classgraph.ScanResultObject
io.github.classgraph.HierarchicalTypeSignature
io.github.classgraph.MethodTypeSignature
A method type signature (called "MethodSignature" in the classfile documentation).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<TypeSignature> The method parameter type signatures.private AnnotationInfoListAny type annotation(s) on an explicit receiver parameter.private final TypeSignatureThe method result type.private final List<ClassRefOrTypeVariableSignature> The throws type signatures.(package private) final List<TypeParameter> The method type parameters.Fields inherited from class HierarchicalTypeSignature
typeAnnotationInfoFields inherited from class ScanResultObject
classRef, scanResult -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateMethodTypeSignature(List<TypeParameter> typeParameters, List<TypeSignature> paramTypes, TypeSignature resultType, List<ClassRefOrTypeVariableSignature> throwsSignatures) Constructor. -
Method Summary
Modifier and TypeMethodDescription(package private) voidaddRecieverTypeAnnotation(AnnotationInfo annotationInfo) Add a type annotation for an explicit receiver parameter.protected voidaddTypeAnnotation(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo) Add a type annotation.booleanprotected voidfindReferencedClassInfo(Map<String, ClassInfo> classNameToClassInfo, Set<ClassInfo> refdClassInfo, LogNode log) GetClassInfoobjects for any classes referenced in the type descriptor or type signature.protected voidfindReferencedClassNames(Set<String> refdClassNames) Get the names of any classes referenced in the type signature.protected ClassInfoGet theClassInfoobject for the referenced class, or null if the referenced class was not encountered during scanning (i.e.protected StringThe name of the class (used byScanResultObject.getClassInfo()to fetch theClassInfoobject for the class).(package private) List<TypeSignature> Get the type signatures of the method parameters.Get type annotations on the explicit receiver parameter, or null if none.Get the result type for the method.Get the throws type(s) for the method.Get the type parameters for the method, if this is a generic method.inthashCode()(package private) static MethodTypeSignatureParse a method signature.(package private) voidsetScanResult(ScanResult scanResult) Set ScanResult backreferences in info objects after scan has completed.protected voidtoStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf) Render type signature to string.Methods inherited from class HierarchicalTypeSignature
addTypeAnnotation, getTypeAnnotationInfo, toStringMethods inherited from class ScanResultObject
findReferencedClassInfo, loadClass, loadClass, loadClass, loadClass, toString, toString, toStringWithSimpleNames
-
Field Details
-
typeParameters
The method type parameters. -
parameterTypeSignatures
The method parameter type signatures. -
resultType
The method result type. -
throwsSignatures
The throws type signatures. -
receiverTypeAnnotationInfo
Any type annotation(s) on an explicit receiver parameter.
-
-
Constructor Details
-
MethodTypeSignature
private MethodTypeSignature(List<TypeParameter> typeParameters, List<TypeSignature> paramTypes, TypeSignature resultType, List<ClassRefOrTypeVariableSignature> throwsSignatures) Constructor.- Parameters:
typeParameters- The type parameters for the method.paramTypes- The parameter types for the method.resultType- The return type for the method.throwsSignatures- The throws signatures for the method.
-
-
Method Details
-
getTypeParameters
Get the type parameters for the method, if this is a generic method.- Returns:
- The type parameters for the method, if any, otherwise null.
-
getParameterTypeSignatures
List<TypeSignature> getParameterTypeSignatures()Get the type signatures of the method parameters. N.B. this is non-public, since the types have to be aligned with other parameter metadata. The type of a parameter can be obtained post-alignment from the parameter'sMethodParameterInfoobject.- Returns:
- The parameter types for the method, as
TypeSignatureparsed type objects.
-
getResultType
Get the result type for the method.- Returns:
- The result type for the method, as a
TypeSignatureparsed type object.
-
getThrowsSignatures
Get the throws type(s) for the method.- Returns:
- The throws types for the method, as
TypeSignatureparsed type objects.
-
addTypeAnnotation
protected void addTypeAnnotation(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
-
addRecieverTypeAnnotation
Add a type annotation for an explicit receiver parameter.- Parameters:
annotationInfo- the receiver type annotation
-
getReceiverTypeAnnotationInfo
Get type annotations on the explicit receiver parameter, or null if none.- Returns:
- type annotations on the explicit receiver parameter, or null if none.
-
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
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
Description copied from class:ScanResultObjectSet ScanResult backreferences in info objects after scan has completed.- Overrides:
setScanResultin classHierarchicalTypeSignature- Parameters:
scanResult- the scan result
-
findReferencedClassNames
-
findReferencedClassInfo
protected void findReferencedClassInfo(Map<String, ClassInfo> classNameToClassInfo, Set<ClassInfo> refdClassInfo, LogNode log) GetClassInfoobjects for any classes referenced in the type descriptor or type signature.- Overrides:
findReferencedClassInfoin classScanResultObject- Parameters:
classNameToClassInfo- the map from class name toClassInfo.refdClassInfo- the referenced class infolog- the log
-
hashCode
-
equals
-
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.
-
parse
static MethodTypeSignature parse(String typeDescriptor, String definingClassName) throws ParseException Parse a method signature.- Parameters:
typeDescriptor- The type descriptor of the method.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.
-