public abstract class org.graalvm.compiler.processor.AbstractProcessor extends javax.annotation.processing.AbstractProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.processor.AbstractProcessor
  super_class: javax.annotation.processing.AbstractProcessor
{
  private final java.util.Map<java.lang.String, javax.lang.model.element.TypeElement> types;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/TypeElement;>;

  private static final java.util.regex.Pattern QUALIFIED_CLASS_NAME_RE;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lorg/graalvm/compiler/processor/AbstractProcessor;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.processor.AbstractProcessor.$assertionsDisabled:Z
         3: .line 152
            ldc "(?:[a-z]\\w*\\.)+([A-Z].*)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.graalvm.compiler.processor.AbstractProcessor.QUALIFIED_CLASS_NAME_RE:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
         0: .line 58
            aload 0 /* this */
            invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
         1: .line 81
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.graalvm.compiler.processor.AbstractProcessor.types:Ljava/util/Map;
         2: .line 58
            return
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/processor/AbstractProcessor;

  public javax.annotation.processing.ProcessingEnvironment env();
    descriptor: ()Ljavax/annotation/processing/ProcessingEnvironment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
         0: .line 64
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            areturn
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/processor/AbstractProcessor;

  public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
    descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.util.Set annotations
        start local 2 // javax.annotation.processing.RoundEnvironment roundEnv
         0: .line 74
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.types:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 76
            aload 0 /* this */
            aload 1 /* annotations */
            aload 2 /* roundEnv */
            invokevirtual org.graalvm.compiler.processor.AbstractProcessor.doProcess:(Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
            ireturn
        end local 2 // javax.annotation.processing.RoundEnvironment roundEnv
        end local 1 // java.util.Set annotations
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    2     1  annotations  Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
            0    2     2     roundEnv  Ljavax/annotation/processing/RoundEnvironment;
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     

  protected abstract boolean doProcess(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
    descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     

  public javax.lang.model.type.TypeMirror getType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.lang.String className
         0: .line 89
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.graalvm.compiler.processor.AbstractProcessor.getTypeElement:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    1     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  public javax.lang.model.type.TypeMirror getTypeOrNull(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.lang.String className
         0: .line 98
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.graalvm.compiler.processor.AbstractProcessor.getTypeElementOrNull:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* element */
        start local 2 // javax.lang.model.element.TypeElement element
         1: .line 99
            aload 2 /* element */
            ifnonnull 3
         2: .line 100
            aconst_null
            areturn
         3: .line 102
      StackMap locals: javax.lang.model.element.TypeElement
      StackMap stack:
            aload 2 /* element */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            areturn
        end local 2 // javax.lang.model.element.TypeElement element
        end local 1 // java.lang.String className
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    4     1  className  Ljava/lang/String;
            1    4     2    element  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
           Name  Flags
      className  

  public javax.lang.model.element.TypeElement getTypeElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.lang.String className
         0: .line 111
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.graalvm.compiler.processor.AbstractProcessor.getTypeElementOrNull:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* type */
        start local 2 // javax.lang.model.element.TypeElement type
         1: .line 112
            aload 2 /* type */
            ifnonnull 3
         2: .line 113
            new java.lang.NoClassDefFoundError
            dup
            aload 1 /* className */
            invokespecial java.lang.NoClassDefFoundError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 115
      StackMap locals: javax.lang.model.element.TypeElement
      StackMap stack:
            aload 2 /* type */
            areturn
        end local 2 // javax.lang.model.element.TypeElement type
        end local 1 // java.lang.String className
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    4     1  className  Ljava/lang/String;
            1    4     2       type  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
           Name  Flags
      className  

  public javax.lang.model.element.TypeElement getTypeElementOrNull(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.lang.String className
         0: .line 124
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.types:Ljava/util/Map;
            aload 1 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeElement
            astore 2 /* type */
        start local 2 // javax.lang.model.element.TypeElement type
         1: .line 125
            aload 2 /* type */
            ifnonnull 6
         2: .line 126
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 1 /* className */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* type */
         3: .line 127
            aload 2 /* type */
            ifnonnull 5
         4: .line 128
            aconst_null
            areturn
         5: .line 130
      StackMap locals: javax.lang.model.element.TypeElement
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.types:Ljava/util/Map;
            aload 1 /* className */
            aload 2 /* type */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        end local 2 // javax.lang.model.element.TypeElement type
        end local 1 // java.lang.String className
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    7     1  className  Ljava/lang/String;
            1    7     2       type  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
           Name  Flags
      className  

  public javax.lang.model.element.TypeElement asTypeElement(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // javax.lang.model.type.TypeMirror type
         0: .line 141
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 1 /* type */
            invokeinterface javax.lang.model.util.Types.asElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/Element;
            astore 2 /* element */
        start local 2 // javax.lang.model.element.Element element
         1: .line 142
            aload 2 /* element */
            ifnonnull 3
         2: .line 143
            new java.lang.ClassCastException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " cannot be converted to a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Ljavax/lang/model/element/TypeElement;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 145
      StackMap locals: javax.lang.model.element.Element
      StackMap stack:
            aload 2 /* element */
            checkcast javax.lang.model.element.TypeElement
            areturn
        end local 2 // javax.lang.model.element.Element element
        end local 1 // javax.lang.model.type.TypeMirror type
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    4     1     type  Ljavax/lang/model/type/TypeMirror;
            1    4     2  element  Ljavax/lang/model/element/Element;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String getSimpleName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String className
         0: .line 161
            getstatic org.graalvm.compiler.processor.AbstractProcessor.QUALIFIED_CLASS_NAME_RE:Ljava/util/regex/Pattern;
            aload 0 /* className */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* m */
        start local 1 // java.util.regex.Matcher m
         1: .line 162
            aload 1 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 3
         2: .line 163
            aload 1 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            areturn
         3: .line 165
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class name \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" does not match pattern "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.graalvm.compiler.processor.AbstractProcessor.QUALIFIED_CLASS_NAME_RE:Ljava/util/regex/Pattern;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.util.regex.Matcher m
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  className  Ljava/lang/String;
            1    4     1          m  Ljava/util/regex/Matcher;
    MethodParameters:
           Name  Flags
      className  

  public static java.lang.String getPackageName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String className
         0: .line 175
            aload 0 /* className */
            invokestatic org.graalvm.compiler.processor.AbstractProcessor.getSimpleName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* simpleName */
        start local 1 // java.lang.String simpleName
         1: .line 176
            aload 0 /* className */
            iconst_0
            aload 0 /* className */
            invokevirtual java.lang.String.length:()I
            aload 1 /* simpleName */
            invokevirtual java.lang.String.length:()I
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String simpleName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0   className  Ljava/lang/String;
            1    2     1  simpleName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  public javax.lang.model.element.AnnotationMirror getAnnotation(javax.lang.model.element.Element, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // javax.lang.model.element.Element element
        start local 2 // javax.lang.model.type.TypeMirror annotationType
         0: .line 186
            aload 0 /* this */
            aload 1 /* element */
            aload 2 /* annotationType */
            invokevirtual org.graalvm.compiler.processor.AbstractProcessor.getAnnotations:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            astore 3 /* mirrors */
        start local 3 // java.util.List mirrors
         1: .line 187
            aload 3 /* mirrors */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: aload 3 /* mirrors */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationMirror
      StackMap locals:
      StackMap stack: javax.lang.model.element.AnnotationMirror
         3: areturn
        end local 3 // java.util.List mirrors
        end local 2 // javax.lang.model.type.TypeMirror annotationType
        end local 1 // javax.lang.model.element.Element element
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    4     1         element  Ljavax/lang/model/element/Element;
            0    4     2  annotationType  Ljavax/lang/model/type/TypeMirror;
            1    4     3         mirrors  Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
    MethodParameters:
                Name  Flags
      element         
      annotationType  

  public java.util.List<javax.lang.model.element.AnnotationMirror> getAnnotations(javax.lang.model.element.Element, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // javax.lang.model.element.Element element
        start local 2 // javax.lang.model.type.TypeMirror typeMirror
         0: .line 194
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.List result
         1: .line 195
            aload 1 /* element */
            invokeinterface javax.lang.model.element.Element.getAnnotationMirrors:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.graalvm.compiler.processor.AbstractProcessor javax.lang.model.element.Element javax.lang.model.type.TypeMirror java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationMirror
            astore 4 /* mirror */
        start local 4 // javax.lang.model.element.AnnotationMirror mirror
         3: .line 196
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 4 /* mirror */
            invokeinterface javax.lang.model.element.AnnotationMirror.getAnnotationType:()Ljavax/lang/model/type/DeclaredType;
            aload 2 /* typeMirror */
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 5
         4: .line 197
            aload 3 /* result */
            aload 4 /* mirror */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // javax.lang.model.element.AnnotationMirror mirror
         5: .line 195
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 200
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        end local 2 // javax.lang.model.type.TypeMirror typeMirror
        end local 1 // javax.lang.model.element.Element element
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0    7     1     element  Ljavax/lang/model/element/Element;
            0    7     2  typeMirror  Ljavax/lang/model/type/TypeMirror;
            1    7     3      result  Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
            3    5     4      mirror  Ljavax/lang/model/element/AnnotationMirror;
    Signature: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
    MethodParameters:
            Name  Flags
      element     
      typeMirror  

  public static <T> T getAnnotationValue(javax.lang.model.element.AnnotationMirror, java.lang.String, java.lang.Class<T>);
    descriptor: (Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // javax.lang.model.element.AnnotationMirror annotation
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 214
            aconst_null
            astore 3 /* valueMethod */
        start local 3 // javax.lang.model.element.ExecutableElement valueMethod
         1: .line 215
            aload 0 /* annotation */
            invokeinterface javax.lang.model.element.AnnotationMirror.getAnnotationType:()Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: javax.lang.model.element.AnnotationMirror java.lang.String java.lang.Class javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 4 /* method */
        start local 4 // javax.lang.model.element.ExecutableElement method
         3: .line 216
            aload 4 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 217
            aload 4 /* method */
            astore 3 /* valueMethod */
         5: .line 218
            goto 7
        end local 4 // javax.lang.model.element.ExecutableElement method
         6: .line 215
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 222
      StackMap locals: javax.lang.model.element.AnnotationMirror java.lang.String java.lang.Class javax.lang.model.element.ExecutableElement
      StackMap stack:
            aload 3 /* valueMethod */
            ifnonnull 9
         8: .line 223
            aconst_null
            areturn
         9: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* annotation */
            invokeinterface javax.lang.model.element.AnnotationMirror.getElementValues:()Ljava/util/Map;
            aload 3 /* valueMethod */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationValue
            astore 4 /* value */
        start local 4 // javax.lang.model.element.AnnotationValue value
        10: .line 227
            aload 4 /* value */
            ifnonnull 12
        11: .line 228
            aload 3 /* valueMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getDefaultValue:()Ljavax/lang/model/element/AnnotationValue;
            astore 4 /* value */
        12: .line 231
      StackMap locals: javax.lang.model.element.AnnotationValue
      StackMap stack:
            aload 2 /* type */
            aload 4 /* value */
            invokeinterface javax.lang.model.element.AnnotationValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // javax.lang.model.element.AnnotationValue value
        end local 3 // javax.lang.model.element.ExecutableElement valueMethod
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // javax.lang.model.element.AnnotationMirror annotation
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0   annotation  Ljavax/lang/model/element/AnnotationMirror;
            0   13     1         name  Ljava/lang/String;
            0   13     2         type  Ljava/lang/Class<TT;>;
            1   13     3  valueMethod  Ljavax/lang/model/element/ExecutableElement;
            3    6     4       method  Ljavax/lang/model/element/ExecutableElement;
           10   13     4        value  Ljavax/lang/model/element/AnnotationValue;
    Signature: <T:Ljava/lang/Object;>(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      annotation  
      name        
      type        

  public static <T> java.util.List<T> getAnnotationValueList(javax.lang.model.element.AnnotationMirror, java.lang.String, java.lang.Class<T>);
    descriptor: (Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // javax.lang.model.element.AnnotationMirror annotation
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class componentType
         0: .line 246
            aload 0 /* annotation */
            aload 1 /* name */
            ldc Ljava/util/List;
            invokestatic org.graalvm.compiler.processor.AbstractProcessor.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* values */
        start local 3 // java.util.List values
         1: .line 247
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* result */
        start local 4 // java.util.List result
         2: .line 249
            aload 3 /* values */
            ifnull 7
         3: .line 250
            aload 3 /* values */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: javax.lang.model.element.AnnotationMirror java.lang.String java.lang.Class java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationValue
            astore 5 /* value */
        start local 5 // javax.lang.model.element.AnnotationValue value
         5: .line 251
            aload 4 /* result */
            aload 2 /* componentType */
            aload 5 /* value */
            invokeinterface javax.lang.model.element.AnnotationValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // javax.lang.model.element.AnnotationValue value
         6: .line 250
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 254
      StackMap locals: javax.lang.model.element.AnnotationMirror java.lang.String java.lang.Class java.util.List java.util.List
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.util.List result
        end local 3 // java.util.List values
        end local 2 // java.lang.Class componentType
        end local 1 // java.lang.String name
        end local 0 // javax.lang.model.element.AnnotationMirror annotation
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0     annotation  Ljavax/lang/model/element/AnnotationMirror;
            0    8     1           name  Ljava/lang/String;
            0    8     2  componentType  Ljava/lang/Class<TT;>;
            1    8     3         values  Ljava/util/List<+Ljavax/lang/model/element/AnnotationValue;>;
            2    8     4         result  Ljava/util/List<TT;>;
            5    6     5          value  Ljavax/lang/model/element/AnnotationValue;
    Signature: <T:Ljava/lang/Object;>(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
               Name  Flags
      annotation     
      name           
      componentType  

  public void createProviderFile(java.lang.String, java.lang.String, javax.lang.model.element.Element[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljavax/lang/model/element/Element;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.processor.AbstractProcessor this
        start local 1 // java.lang.String providerClassName
        start local 2 // java.lang.String serviceClassName
        start local 3 // javax.lang.model.element.Element[] originatingElements
         0: .line 262
            getstatic org.graalvm.compiler.processor.AbstractProcessor.$assertionsDisabled:Z
            ifne 1
            aload 3 /* originatingElements */
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 263
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "META-INF/providers/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* providerClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* filename */
        start local 4 // java.lang.String filename
         2: .line 265
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getFiler:()Ljavax/annotation/processing/Filer;
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            ldc ""
            aload 4 /* filename */
            aload 3 /* originatingElements */
            invokeinterface javax.annotation.processing.Filer.createResource:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/CharSequence;Ljava/lang/CharSequence;[Ljavax/lang/model/element/Element;)Ljavax/tools/FileObject;
            astore 5 /* file */
        start local 5 // javax.tools.FileObject file
         3: .line 266
            new java.io.PrintWriter
            dup
            new java.io.OutputStreamWriter
            dup
            aload 5 /* file */
            invokeinterface javax.tools.FileObject.openOutputStream:()Ljava/io/OutputStream;
            ldc "UTF-8"
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/lang/String;)V
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            astore 6 /* writer */
        start local 6 // java.io.PrintWriter writer
         4: .line 267
            aload 6 /* writer */
            aload 2 /* serviceClassName */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 268
            aload 6 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 6 // java.io.PrintWriter writer
        end local 5 // javax.tools.FileObject file
         6: .line 269
            goto 11
      StackMap locals: org.graalvm.compiler.processor.AbstractProcessor java.lang.String java.lang.String javax.lang.model.element.Element[] java.lang.String
      StackMap stack: java.io.IOException
         7: astore 5 /* e */
        start local 5 // java.io.IOException e
         8: .line 270
            aload 0 /* this */
            getfield org.graalvm.compiler.processor.AbstractProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            aload 5 /* e */
            invokestatic org.graalvm.compiler.processor.AbstractProcessor.isBug367599:(Ljava/lang/Throwable;)Z
            ifeq 9
            getstatic javax.tools.Diagnostic$Kind.NOTE:Ljavax/tools/Diagnostic$Kind;
            goto 10
      StackMap locals: org.graalvm.compiler.processor.AbstractProcessor java.lang.String java.lang.String javax.lang.model.element.Element[] java.lang.String java.io.IOException
      StackMap stack: javax.annotation.processing.Messager
         9: getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
      StackMap locals: org.graalvm.compiler.processor.AbstractProcessor java.lang.String java.lang.String javax.lang.model.element.Element[] java.lang.String java.io.IOException
      StackMap stack: javax.annotation.processing.Messager javax.tools.Diagnostic$Kind
        10: aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 3 /* originatingElements */
            iconst_0
            aaload
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;)V
        end local 5 // java.io.IOException e
        11: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String filename
        end local 3 // javax.lang.model.element.Element[] originatingElements
        end local 2 // java.lang.String serviceClassName
        end local 1 // java.lang.String providerClassName
        end local 0 // org.graalvm.compiler.processor.AbstractProcessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/graalvm/compiler/processor/AbstractProcessor;
            0   12     1    providerClassName  Ljava/lang/String;
            0   12     2     serviceClassName  Ljava/lang/String;
            0   12     3  originatingElements  [Ljavax/lang/model/element/Element;
            2   12     4             filename  Ljava/lang/String;
            3    6     5                 file  Ljavax/tools/FileObject;
            4    6     6               writer  Ljava/io/PrintWriter;
            8   11     5                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     6       7  Class java.io.IOException
    MethodParameters:
                     Name  Flags
      providerClassName    
      serviceClassName     
      originatingElements  

  private static boolean isBug367599(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 279
            aload 0 /* t */
            instanceof javax.annotation.processing.FilerException
            ifeq 7
         1: .line 280
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 6
      StackMap locals: java.lang.Throwable top int int java.lang.StackTraceElement[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* ste */
        start local 1 // java.lang.StackTraceElement ste
         3: .line 281
            aload 1 /* ste */
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            ldc "org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeFilerImpl.create"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 5
         4: .line 283
            iconst_1
            ireturn
        end local 1 // java.lang.StackTraceElement ste
         5: .line 280
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         6: iload 2
            iload 3
            if_icmplt 2
         7: .line 287
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            ifnull 8
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            invokestatic org.graalvm.compiler.processor.AbstractProcessor.isBug367599:(Ljava/lang/Throwable;)Z
            ifeq 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0     t  Ljava/lang/Throwable;
            3    5     1   ste  Ljava/lang/StackTraceElement;
    MethodParameters:
      Name  Flags
      t     
}
SourceFile: "AbstractProcessor.java"
InnerClasses:
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
    RuntimeInvisibleAnnotations: 
      org.graalvm.compiler.processor.SuppressFBWarnings(value = {"NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"}, reason = "We want this type to be found when someone is writing a new Graal annotation processor")