Class TypeVariableSignature

    • Field Detail

      • name

        private final java.lang.String name
        The type variable name.
      • definingClassName

        private final java.lang.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 Detail

      • TypeVariableSignature

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

      • getName

        public java.lang.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:
        java.lang.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.
      • parse

        static TypeVariableSignature parse​(Parser parser,
                                           java.lang.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 java.lang.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​(java.util.Set<java.lang.String> refdClassNames)
        Get the names of any classes referenced in the type signature.
        Overrides:
        findReferencedClassNames in class TypeSignature
        Parameters:
        refdClassNames - the referenced class names.
      • hashCode

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

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toStringWithTypeBound

        public java.lang.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,
                                        java.lang.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.