Class MethodTypeSignature


public final class MethodTypeSignature extends HierarchicalTypeSignature
A method type signature (called "MethodSignature" in the classfile documentation).
  • Field Details

    • typeParameters

      final List<TypeParameter> typeParameters
      The method type parameters.
    • parameterTypeSignatures

      private final List<TypeSignature> parameterTypeSignatures
      The method parameter type signatures.
    • resultType

      private final TypeSignature resultType
      The method result type.
    • throwsSignatures

      private final List<ClassRefOrTypeVariableSignature> throwsSignatures
      The throws type signatures.
    • receiverTypeAnnotationInfo

      private AnnotationInfoList 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

      public List<TypeParameter> 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's MethodParameterInfo object.
      Returns:
      The parameter types for the method, as TypeSignature parsed type objects.
    • getResultType

      public TypeSignature getResultType()
      Get the result type for the method.
      Returns:
      The result type for the method, as a TypeSignature parsed type object.
    • getThrowsSignatures

      public List<ClassRefOrTypeVariableSignature> getThrowsSignatures()
      Get the throws type(s) for the method.
      Returns:
      The throws types for the method, as TypeSignature parsed type objects.
    • addTypeAnnotation

      protected void addTypeAnnotation(List<Classfile.TypePathNode> typePath, AnnotationInfo annotationInfo)
      Description copied from class: HierarchicalTypeSignature
      Add a type annotation.
      Specified by:
      addTypeAnnotation in class HierarchicalTypeSignature
      Parameters:
      typePath - the type path
      annotationInfo - the annotation
    • addRecieverTypeAnnotation

      void addRecieverTypeAnnotation(AnnotationInfo annotationInfo)
      Add a type annotation for an explicit receiver parameter.
      Parameters:
      annotationInfo - the receiver type annotation
    • getReceiverTypeAnnotationInfo

      public AnnotationInfoList 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

      protected String getClassName()
      Description copied from class: ScanResultObject
      The name of the class (used by ScanResultObject.getClassInfo() to fetch the ClassInfo object for the class).
      Specified by:
      getClassName in class ScanResultObject
      Returns:
      The class name.
    • getClassInfo

      protected ClassInfo getClassInfo()
      Description copied from class: ScanResultObject
      Get the ClassInfo object 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:
      getClassInfo in class ScanResultObject
      Returns:
      The ClassInfo object for the referenced class.
    • setScanResult

      void setScanResult(ScanResult scanResult)
      Description copied from class: ScanResultObject
      Set ScanResult backreferences in info objects after scan has completed.
      Overrides:
      setScanResult in class HierarchicalTypeSignature
      Parameters:
      scanResult - the scan result
    • findReferencedClassNames

      protected void findReferencedClassNames(Set<String> refdClassNames)
      Get the names of any classes referenced in the type signature.
      Parameters:
      refdClassNames - the referenced class names.
    • findReferencedClassInfo

      protected void findReferencedClassInfo(Map<String,ClassInfo> classNameToClassInfo, Set<ClassInfo> refdClassInfo, LogNode log)
      Get ClassInfo objects for any classes referenced in the type descriptor or type signature.
      Overrides:
      findReferencedClassInfo in class ScanResultObject
      Parameters:
      classNameToClassInfo - the map from class name to ClassInfo.
      refdClassInfo - the referenced class info
      log - the log
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toStringInternal

      protected void toStringInternal(boolean useSimpleNames, AnnotationInfoList annotationsToExclude, StringBuilder buf)
      Description copied from class: HierarchicalTypeSignature
      Render type signature to string.
      Specified by:
      toStringInternal in class HierarchicalTypeSignature
      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 - the StringBuilder to 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.