Class GenericSignatureParser


  • public final class GenericSignatureParser
    extends Object
    Implements a parser for the generics signature attribute. Uses a top-down, recursive descent parsing approach for the following grammar:
     ClassSignature ::=
         OptFormalTypeParams SuperclassSignature {SuperinterfaceSignature}.
     SuperclassSignature ::= ClassTypeSignature.
     SuperinterfaceSignature ::= ClassTypeSignature.
    
     OptFormalTypeParams ::=
         ["<" FormalTypeParameter {FormalTypeParameter} ">"].
    
     FormalTypeParameter ::= Ident ClassBound {InterfaceBound}.
     ClassBound ::= ":" [FieldTypeSignature].
     InterfaceBound ::= ":" FieldTypeSignature.
    
     FieldTypeSignature ::=
         ClassTypeSignature | ArrayTypeSignature | TypeVariableSignature.
     ArrayTypeSignature ::= "[" TypSignature.
    
     ClassTypeSignature ::=
         "L" {Ident "/"} Ident OptTypeArguments {"." Ident OptTypeArguments} ";".
    
     OptTypeArguments ::= "<" TypeArgument {TypeArgument} ">".
    
     TypeArgument ::= ([WildcardIndicator] FieldTypeSignature) | "*".
     WildcardIndicator ::= "+" | "-".
    
     TypeVariableSignature ::= "T" Ident ";".
    
     TypSignature ::= FieldTypeSignature | BaseType.
     BaseType ::= "B" | "C" | "D" | "F" | "I" | "J" | "S" | "Z".
    
     MethodTypeSignature ::=
         OptFormalTypeParams "(" {TypeSignature} ")" ReturnType {ThrowsSignature}.
     ThrowsSignature ::= ("^" ClassTypeSignature) | ("^" TypeVariableSignature).
    
     ReturnType ::= TypSignature | VoidDescriptor.
     VoidDescriptor ::= "V".
     
    • Constructor Detail

      • GenericSignatureParser

        public GenericSignatureParser​(ClassLoader loader)
    • Method Detail

      • parseForClass

        public void parseForClass​(GenericDeclaration genericDecl,
                                  String signature)
        Parses the generic signature of a class and creates the data structure representing the signature.
        Parameters:
        genericDecl - the GenericDeclaration calling this method
        signature - the generic signature of the class
      • parseForMethod

        public void parseForMethod​(GenericDeclaration genericDecl,
                                   String signature,
                                   Class<?>[] rawExceptionTypes)
        Parses the generic signature of a method and creates the data structure representing the signature.
        Parameters:
        genericDecl - the GenericDeclaration calling this method
        signature - the generic signature of the class
      • parseForConstructor

        public void parseForConstructor​(GenericDeclaration genericDecl,
                                        String signature,
                                        Class<?>[] rawExceptionTypes)
        Parses the generic signature of a constructor and creates the data structure representing the signature.
        Parameters:
        genericDecl - the GenericDeclaration calling this method
        signature - the generic signature of the class
      • parseForField

        public void parseForField​(GenericDeclaration genericDecl,
                                  String signature)
        Parses the generic signature of a field and creates the data structure representing the signature.
        Parameters:
        genericDecl - the GenericDeclaration calling this method
        signature - the generic signature of the class