Class TypeVariableSignature


public final class TypeVariableSignature extends ClassRefOrTypeVariableSignature
A type variable signature.
  • Field Details

    • name

      private final String name
      The type variable name.
    • definingClassName

      private final String definingClassName
      The name of the class that this type variable is defined in.
    • containingMethodSignature

      MethodTypeSignature containingMethodSignature
      The method signature that this type variable is part of.
    • typeParameterCached

      private TypeParameter typeParameterCached
      The resolved type parameter, if any.
  • Constructor Details

    • TypeVariableSignature

      private TypeVariableSignature(String typeVariableName, String definingClassName)
      Constructor.
      Parameters:
      typeVariableName - The type variable name.
      definingClassName - the defining class name.
  • Method Details

    • getName

      public String getName()
      Get the name of the type variable.
      Returns:
      The type variable name.
    • resolve

      public TypeParameter 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 class TypeSignature
      Parameters:
      typePath - The type path.
      annotationInfo - The annotation to add.
    • parse

      static TypeVariableSignature parse(Parser parser, String definingClassName) throws ParseException
      Parse a TypeVariableSignature.
      Parameters:
      parser - the parser
      definingClassName - the defining class name
      Returns:
      the type variable signature
      Throws:
      ParseException - if parsing fails
    • getClassName

      protected String getClassName()
      Return definingClassName, so that getClassInfo() returns the ClassInfo object for the containing class.
      Specified by:
      getClassName in class ScanResultObject
      Returns:
      the defining class name.
    • findReferencedClassNames

      protected void findReferencedClassNames(Set<String> refdClassNames)
      Get the names of any classes referenced in the type signature.
      Overrides:
      findReferencedClassNames in class TypeSignature
      Parameters:
      refdClassNames - the referenced class names.
    • 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
    • hashCode

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

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

      public boolean equalsIgnoringTypeParams(TypeSignature other)
      Description copied from class: TypeSignature
      Compare base types, ignoring generic type parameters.
      Specified by:
      equalsIgnoringTypeParams in class TypeSignature
      Parameters:
      other - the other TypeSignature to compare to.
      Returns:
      True if the two TypeSignature objects are equal, ignoring type parameters.
    • toStringWithTypeBound

      public String 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 calling resolve(). Returns just the type variable if there is no type bound, or if no type bound is known (i.e. if resolve() 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 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.