org.objectweb.asm.signature

## Class SignatureVisitor

- java.lang.Object
- - org.objectweb.asm.signature.SignatureVisitor

- Direct Known Subclasses:
    CheckSignatureAdapter, RemappingSignatureAdapter, SignatureWriter, TraceSignatureVisitor

      public abstract class SignatureVisitor
      extends Object

  A visitor to visit a generic signature. The methods of this interface must be called in one of the three following orders (the last one is the only valid order for a `SignatureVisitor` that is returned by a method of this interface):
  - ClassSignature = ( `visitFormalTypeParameter` `visitClassBound`? `visitInterfaceBound`* )* ( `visitSuperclass` `visitInterface`* )
  - MethodSignature = ( `visitFormalTypeParameter` `visitClassBound`? `visitInterfaceBound`* )* ( `visitParameterType`* `visitReturnType` `visitExceptionType`* )
  - TypeSignature = `visitBaseType` | `visitTypeVariable` | `visitArrayType` | ( `visitClassType` `visitTypeArgument`* ( `visitInnerClassType` `visitTypeArgument`* )* `visitEnd` ) )
  Author:
    Thomas Hallgren, Eric Bruneton

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `api` The ASM API version implemented by this visitor.
    `static char` | `EXTENDS` Wildcard for an "extends" type argument.
    `static char` | `INSTANCEOF` Wildcard for a normal type argument.
    `static char` | `SUPER` Wildcard for a "super" type argument.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SignatureVisitor(int api)` Constructs a new `SignatureVisitor`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `SignatureVisitor` | `visitArrayType()` Visits a signature corresponding to an array type.
    `void` | `visitBaseType(char descriptor)` Visits a signature corresponding to a primitive type.
    `SignatureVisitor` | `visitClassBound()` Visits the class bound of the last visited formal type parameter.
    `void` | `visitClassType(String name)` Starts the visit of a signature corresponding to a class or interface type.
    `void` | `visitEnd()` Ends the visit of a signature corresponding to a class or interface type.
    `SignatureVisitor` | `visitExceptionType()` Visits the type of a method exception.
    `void` | `visitFormalTypeParameter(String name)` Visits a formal type parameter.
    `void` | `visitInnerClassType(String name)` Visits an inner class.
    `SignatureVisitor` | `visitInterface()` Visits the type of an interface implemented by the class.
    `SignatureVisitor` | `visitInterfaceBound()` Visits an interface bound of the last visited formal type parameter.
    `SignatureVisitor` | `visitParameterType()` Visits the type of a method parameter.
    `SignatureVisitor` | `visitReturnType()` Visits the return type of the method.
    `SignatureVisitor` | `visitSuperclass()` Visits the type of the super class.
    `void` | `visitTypeArgument()` Visits an unbounded type argument of the last visited class or inner class type.
    `SignatureVisitor` | `visitTypeArgument(char wildcard)` Visits a type argument of the last visited class or inner class type.
    `void` | `visitTypeVariable(String name)` Visits a signature corresponding to a type variable.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### EXTENDS

          public static final char EXTENDS

      Wildcard for an "extends" type argument.
      See Also:
        Constant Field Values

    - #### SUPER

          public static final char SUPER

      Wildcard for a "super" type argument.
      See Also:
        Constant Field Values

    - #### INSTANCEOF

          public static final char INSTANCEOF

      Wildcard for a normal type argument.
      See Also:
        Constant Field Values

    - #### api

          protected final int api

      The ASM API version implemented by this visitor. The value of this field must be one of `Opcodes.ASM4` or `Opcodes.ASM5`.

  - ### Constructor Detail

    - #### SignatureVisitor

          public SignatureVisitor(int api)

      Constructs a new `SignatureVisitor`.
      Parameters:
        `api` - the ASM API version implemented by this visitor. Must be one of `Opcodes.ASM4` or `Opcodes.ASM5`.

  - ### Method Detail

    - #### visitFormalTypeParameter

          public void visitFormalTypeParameter(String name)

      Visits a formal type parameter.
      Parameters:
        `name` - the name of the formal parameter.

    - #### visitClassBound

          public SignatureVisitor visitClassBound()

      Visits the class bound of the last visited formal type parameter.
      Returns:
        a non null visitor to visit the signature of the class bound.

    - #### visitInterfaceBound

          public SignatureVisitor visitInterfaceBound()

      Visits an interface bound of the last visited formal type parameter.
      Returns:
        a non null visitor to visit the signature of the interface bound.

    - #### visitSuperclass

          public SignatureVisitor visitSuperclass()

      Visits the type of the super class.
      Returns:
        a non null visitor to visit the signature of the super class type.

    - #### visitInterface

          public SignatureVisitor visitInterface()

      Visits the type of an interface implemented by the class.
      Returns:
        a non null visitor to visit the signature of the interface type.

    - #### visitParameterType

          public SignatureVisitor visitParameterType()

      Visits the type of a method parameter.
      Returns:
        a non null visitor to visit the signature of the parameter type.

    - #### visitReturnType

          public SignatureVisitor visitReturnType()

      Visits the return type of the method.
      Returns:
        a non null visitor to visit the signature of the return type.

    - #### visitExceptionType

          public SignatureVisitor visitExceptionType()

      Visits the type of a method exception.
      Returns:
        a non null visitor to visit the signature of the exception type.

    - #### visitBaseType

          public void visitBaseType(char descriptor)

      Visits a signature corresponding to a primitive type.
      Parameters:
        `descriptor` - the descriptor of the primitive type, or 'V' for `void` .

    - #### visitTypeVariable

          public void visitTypeVariable(String name)

      Visits a signature corresponding to a type variable.
      Parameters:
        `name` - the name of the type variable.

    - #### visitArrayType

          public SignatureVisitor visitArrayType()

      Visits a signature corresponding to an array type.
      Returns:
        a non null visitor to visit the signature of the array element type.

    - #### visitClassType

          public void visitClassType(String name)

      Starts the visit of a signature corresponding to a class or interface type.
      Parameters:
        `name` - the internal name of the class or interface.

    - #### visitInnerClassType

          public void visitInnerClassType(String name)

      Visits an inner class.
      Parameters:
        `name` - the local name of the inner class in its enclosing class.

    - #### visitTypeArgument

          public void visitTypeArgument()

      Visits an unbounded type argument of the last visited class or inner class type.

    - #### visitTypeArgument

          public SignatureVisitor visitTypeArgument(char wildcard)

      Visits a type argument of the last visited class or inner class type.
      Parameters:
        `wildcard` - '+', '-' or '='.
      Returns:
        a non null visitor to visit the signature of the type argument.

    - #### visitEnd

          public void visitEnd()

      Ends the visit of a signature corresponding to a class or interface type.