Class TypeParameterBoundTypeTarget

  • All Implemented Interfaces:
    AnnotationTarget

    public class TypeParameterBoundTypeTarget
    extends TypeParameterTypeTarget
    Represents a type annotation target which occurs within a bound of type parameter type. This class conveys the zero-based position of the parameter, the zeo-based position of the bound, and finally, the enclosing method or class where it occurs. Since type targets can appear at any depth of the type tree at this location, the corresponding type reference is also included.

    Consider the following example involving a type target using the "Bar" annotation:

     public <T extends Number & @Bar Serializable> void foo(List<T>) { ... }
     

    This example would be represented as a TypeParameterBoundTypeTarget with an enclosing target of foo's MethodInfo, a position() value of "0" and a boundPosition() value of "1". The "Bar" annotation would appear on the type "Serializable" in the bound list of T, on the first type parameter.

    Since:
    2.0
    • Field Detail

      • boundPosition

        private short boundPosition
      • adjusted

        private boolean adjusted
    • Constructor Detail

      • TypeParameterBoundTypeTarget

        TypeParameterBoundTypeTarget​(AnnotationTarget enclosingTarget,
                                     int position,
                                     int boundPosition)
      • TypeParameterBoundTypeTarget

        TypeParameterBoundTypeTarget​(AnnotationTarget enclosingTarget,
                                     Type target,
                                     int position,
                                     int boundPosition)
    • Method Detail

      • boundPosition

        public final int boundPosition()
        Returns the index of the bound this type annotation is within.
        Returns:
        the index of the bound this type annotation is within
      • adjustBoundDown

        void adjustBoundDown()
      • usage

        public final TypeTarget.Usage usage()
        Description copied from class: TypeTarget
        Returns the kind of usage of this type target. This allows a caller to use a switch statement as opposed to getClass() comparisons.
        Overrides:
        usage in class TypeParameterTypeTarget
        Returns:
        the kind of usage of this type target
      • asTypeParameterBound

        public TypeParameterBoundTypeTarget asTypeParameterBound()
        Description copied from class: TypeTarget
        Casts and returns this type target as a TypeParameterBoundTypeTarget. If this type target is not a TypeParameterBoundTypeTarget, then an exception will be thrown.
        Overrides:
        asTypeParameterBound in class TypeTarget
        Returns:
        an instance of TypeParameterBoundTypeTarget