public abstract class org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor<T extends java.lang.Enum<T> extends org.graalvm.libgraal.jni.annotation.FromLibGraalId> extends org.graalvm.compiler.processor.AbstractProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor
  super_class: org.graalvm.compiler.processor.AbstractProcessor
{
  private final java.lang.Class<T> idClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TT;>;

  private final java.util.Set<javax.lang.model.element.ExecutableElement> processed;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/lang/model/element/ExecutableElement;>;

  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 63
            ldc Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor;
            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.libgraal.jni.processor.AbstractFromLibGraalProcessor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // java.lang.Class idClass
         0: .line 67
            aload 0 /* this */
            invokespecial org.graalvm.compiler.processor.AbstractProcessor.<init>:()V
         1: .line 84
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processed:Ljava/util/Set;
         2: .line 68
            aload 1 /* idClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 69
            aload 0 /* this */
            aload 1 /* idClass */
            putfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.idClass:Ljava/lang/Class;
         4: .line 70
            return
        end local 1 // java.lang.Class idClass
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0    5     1  idClass  Ljava/lang/Class<TT;>;
    Signature: (Ljava/lang/Class<TT;>;)V
    MethodParameters:
         Name  Flags
      idClass  

  protected boolean accept(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // javax.lang.model.element.ExecutableElement annotatedElement
         0: .line 76
            iconst_1
            ireturn
        end local 1 // javax.lang.model.element.ExecutableElement annotatedElement
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0    1     1  annotatedElement  Ljavax/lang/model/element/ExecutableElement;
    MethodParameters:
                  Name  Flags
      annotatedElement  

  public final javax.lang.model.SourceVersion getSupportedSourceVersion();
    descriptor: ()Ljavax/lang/model/SourceVersion;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
         0: .line 81
            invokestatic javax.lang.model.SourceVersion.latest:()Ljavax/lang/model/SourceVersion;
            areturn
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;

  static javax.lang.model.element.TypeElement topDeclaringType(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.lang.model.element.Element element
         0: .line 108
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            astore 1 /* enclosing */
        start local 1 // javax.lang.model.element.Element enclosing
         1: .line 109
            aload 1 /* enclosing */
            ifnull 2
            aload 1 /* enclosing */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.PACKAGE:Ljavax/lang/model/element/ElementKind;
            if_acmpne 4
         2: .line 110
      StackMap locals: javax.lang.model.element.Element
      StackMap stack:
            getstatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.$assertionsDisabled:Z
            ifne 3
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 3
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.INTERFACE:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* element */
            checkcast javax.lang.model.element.TypeElement
            areturn
         4: .line 113
      StackMap locals:
      StackMap stack:
            aload 1 /* enclosing */
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.topDeclaringType:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            areturn
        end local 1 // javax.lang.model.element.Element enclosing
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0    element  Ljavax/lang/model/element/Element;
            1    5     1  enclosing  Ljavax/lang/model/element/Element;
    MethodParameters:
         Name  Flags
      element  

  private void processElement(javax.lang.model.element.ExecutableElement, javax.lang.model.type.DeclaredType, java.util.Map<javax.lang.model.element.Element, org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo>);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=13, args_size=4
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // javax.lang.model.element.ExecutableElement hsCall
        start local 2 // javax.lang.model.type.DeclaredType annotationType
        start local 3 // java.util.Map calls
         0: .line 117
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processed:Ljava/util/Set;
            aload 1 /* hsCall */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* this */
            aload 1 /* hsCall */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.accept:(Ljavax/lang/model/element/ExecutableElement;)Z
            ifne 2
         1: .line 118
      StackMap locals:
      StackMap stack:
            return
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* hsCall */
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.topDeclaringType:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            astore 4 /* topDeclaringType */
        start local 4 // javax.lang.model.element.Element topDeclaringType
         3: .line 122
            aload 3 /* calls */
            aload 4 /* topDeclaringType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo
            astore 5 /* info */
        start local 5 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
         4: .line 123
            aload 5 /* info */
            ifnonnull 7
         5: .line 124
            new org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo
            dup
            aload 4 /* topDeclaringType */
            invokespecial org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.<init>:(Ljavax/lang/model/element/Element;)V
            astore 5 /* info */
         6: .line 125
            aload 3 /* calls */
            aload 4 /* topDeclaringType */
            aload 5 /* info */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 128
      StackMap locals: javax.lang.model.element.Element org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processed:Ljava/util/Set;
            aload 1 /* hsCall */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 131
            aload 0 /* this */
            aload 1 /* hsCall */
            aload 2 /* annotationType */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.getAnnotation:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 7 /* annotation */
        start local 7 // javax.lang.model.element.AnnotationMirror annotation
         9: .line 132
            aload 0 /* this */
            aload 2 /* annotationType */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.isRepeatedAnnotation:(Ljavax/lang/model/type/DeclaredType;)Z
            ifeq 12
        10: .line 133
            aload 7 /* annotation */
            ldc "value"
            ldc Ljavax/lang/model/element/AnnotationMirror;
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.getAnnotationValueList:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/List;
            astore 6 /* annotations */
        start local 6 // java.util.List annotations
        11: .line 134
            goto 13
        end local 6 // java.util.List annotations
        12: .line 135
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.element.ExecutableElement javax.lang.model.type.DeclaredType java.util.Map javax.lang.model.element.Element org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo top javax.lang.model.element.AnnotationMirror
      StackMap stack:
            aload 7 /* annotation */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 6 /* annotations */
        start local 6 // java.util.List annotations
        13: .line 138
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.element.ExecutableElement javax.lang.model.type.DeclaredType java.util.Map javax.lang.model.element.Element org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.util.List javax.lang.model.element.AnnotationMirror
      StackMap stack:
            aload 6 /* annotations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 19
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.element.ExecutableElement javax.lang.model.type.DeclaredType java.util.Map javax.lang.model.element.Element org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.util.List javax.lang.model.element.AnnotationMirror top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationMirror
            astore 8 /* a */
        start local 8 // javax.lang.model.element.AnnotationMirror a
        15: .line 139
            aload 8 /* a */
            ldc "value"
            ldc Ljavax/lang/model/element/VariableElement;
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 10 /* annotationValue */
        start local 10 // javax.lang.model.element.VariableElement annotationValue
        16: .line 140
            aload 10 /* annotationValue */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 11 /* idName */
        start local 11 // java.lang.String idName
        17: .line 141
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.idClass:Ljava/lang/Class;
            aload 11 /* idName */
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast org.graalvm.libgraal.jni.annotation.FromLibGraalId
            astore 12 /* id */
        start local 12 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        18: .line 142
            aload 5 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.ids:Ljava/util/List;
            aload 12 /* id */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        end local 11 // java.lang.String idName
        end local 10 // javax.lang.model.element.VariableElement annotationValue
        end local 8 // javax.lang.model.element.AnnotationMirror a
        19: .line 138
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        20: .line 144
            return
        end local 7 // javax.lang.model.element.AnnotationMirror annotation
        end local 6 // java.util.List annotations
        end local 5 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        end local 4 // javax.lang.model.element.Element topDeclaringType
        end local 3 // java.util.Map calls
        end local 2 // javax.lang.model.type.DeclaredType annotationType
        end local 1 // javax.lang.model.element.ExecutableElement hsCall
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0   21     1            hsCall  Ljavax/lang/model/element/ExecutableElement;
            0   21     2    annotationType  Ljavax/lang/model/type/DeclaredType;
            0   21     3             calls  Ljava/util/Map<Ljavax/lang/model/element/Element;Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;>;
            3   21     4  topDeclaringType  Ljavax/lang/model/element/Element;
            4   21     5              info  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;
           11   12     6       annotations  Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
           13   21     6       annotations  Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
            9   21     7        annotation  Ljavax/lang/model/element/AnnotationMirror;
           15   19     8                 a  Ljavax/lang/model/element/AnnotationMirror;
           16   19    10   annotationValue  Ljavax/lang/model/element/VariableElement;
           17   19    11            idName  Ljava/lang/String;
           18   19    12                id  Lorg/graalvm/libgraal/jni/annotation/FromLibGraalId;
    Signature: (Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;Ljava/util/Map<Ljavax/lang/model/element/Element;Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;>;)V
    MethodParameters:
                Name  Flags
      hsCall          
      annotationType  
      calls           

  private boolean isRepeatedAnnotation(javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/type/DeclaredType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // javax.lang.model.type.DeclaredType annotationType
         0: .line 147
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            ldc "value"
            invokeinterface javax.lang.model.util.Elements.getName:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/Name;
            astore 2 /* valueName */
        start local 2 // javax.lang.model.element.Name valueName
         1: .line 148
            aload 1 /* annotationType */
            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 4
            goto 6
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.type.DeclaredType javax.lang.model.element.Name top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 3 /* method */
        start local 3 // javax.lang.model.element.ExecutableElement method
         3: .line 149
            aload 2 /* valueName */
            aload 3 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 150
            aload 3 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.ARRAY:Ljavax/lang/model/type/TypeKind;
            if_acmpne 5
            iconst_1
            ireturn
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.type.DeclaredType javax.lang.model.element.Name javax.lang.model.element.ExecutableElement java.util.Iterator
      StackMap stack:
         5: iconst_0
            ireturn
        end local 3 // javax.lang.model.element.ExecutableElement method
         6: .line 148
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor javax.lang.model.type.DeclaredType javax.lang.model.element.Name top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 153
            iconst_0
            ireturn
        end local 2 // javax.lang.model.element.Name valueName
        end local 1 // javax.lang.model.type.DeclaredType annotationType
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0    8     1  annotationType  Ljavax/lang/model/type/DeclaredType;
            1    8     2       valueName  Ljavax/lang/model/element/Name;
            3    6     3          method  Ljavax/lang/model/element/ExecutableElement;
    MethodParameters:
                Name  Flags
      annotationType  

  private void createFiles(org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo);
    descriptor: (Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
         0: .line 157
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.topDeclaringType:Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.PackageElement
            invokeinterface javax.lang.model.element.PackageElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 2 /* pkg */
        start local 2 // java.lang.String pkg
         1: .line 158
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.topDeclaringType:Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            astore 3 /* topDeclaringClass */
        start local 3 // javax.lang.model.element.Name topDeclaringClass
         2: .line 159
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.originatingElements:Ljava/util/Set;
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.originatingElements:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray javax.lang.model.element.Element
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.lang.model.element.Element[]
            astore 4 /* originatingElements */
        start local 4 // javax.lang.model.element.Element[] originatingElements
         3: .line 161
            aload 0 /* this */
            aload 1 /* info */
            aload 2 /* pkg */
            aload 3 /* topDeclaringClass */
            aload 4 /* originatingElements */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.createGenSource:(Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;Ljava/lang/String;Ljavax/lang/model/element/Name;[Ljavax/lang/model/element/Element;)V
         4: .line 162
            return
        end local 4 // javax.lang.model.element.Element[] originatingElements
        end local 3 // javax.lang.model.element.Name topDeclaringClass
        end local 2 // java.lang.String pkg
        end local 1 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0    5     1                 info  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;
            1    5     2                  pkg  Ljava/lang/String;
            2    5     3    topDeclaringClass  Ljavax/lang/model/element/Name;
            3    5     4  originatingElements  [Ljavax/lang/model/element/Element;
    MethodParameters:
      Name  Flags
      info  

  private static java.lang.String uppercaseFirst(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 165
            new java.lang.StringBuilder
            dup
            aload 0 /* s */
            iconst_0
            iconst_1
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* s */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  private static java.lang.String toJNIType(java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/Class;Z)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Class t
        start local 1 // boolean uppercasePrimitive
         0: .line 169
            aload 0 /* t */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 4
         1: .line 170
            iload 1 /* uppercasePrimitive */
            ifne 3
         2: .line 171
            aload 0 /* t */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
         3: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.uppercaseFirst:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         4: .line 175
      StackMap locals:
      StackMap stack:
            ldc "JObject"
            areturn
        end local 1 // boolean uppercasePrimitive
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                   t  Ljava/lang/Class<*>;
            0    5     1  uppercasePrimitive  Z
    Signature: (Ljava/lang/Class<*>;Z)Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      t                   
      uppercasePrimitive  

  private void createGenSource(org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo, java.lang.String, javax.lang.model.element.Name, javax.lang.model.element.Element[]);
    descriptor: (Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;Ljava/lang/String;Ljavax/lang/model/element/Name;[Ljavax/lang/model/element/Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=21, args_size=5
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        start local 2 // java.lang.String pkg
        start local 3 // javax.lang.model.element.Name topDeclaringClass
        start local 4 // javax.lang.model.element.Element[] originatingElements
         0: .line 179
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 3 /* topDeclaringClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "Gen"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* genClassName */
        start local 5 // java.lang.String genClassName
         1: .line 181
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getFiler:()Ljavax/annotation/processing/Filer;
            astore 6 /* filer */
        start local 6 // javax.annotation.processing.Filer filer
         2: .line 182
            aconst_null
            astore 7
            aconst_null
            astore 8
         3: aload 2 /* pkg */
            aload 5 /* genClassName */
            aload 6 /* filer */
            aload 4 /* originatingElements */
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.createSourceFile:(Ljava/lang/String;Ljava/lang/String;Ljavax/annotation/processing/Filer;[Ljavax/lang/model/element/Element;)Ljava/io/PrintWriter;
            astore 9 /* out */
        start local 9 // java.io.PrintWriter out
         4: .line 184
            aload 9 /* out */
            ldc "// CheckStyle: stop header check"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 185
            aload 9 /* out */
            ldc "// CheckStyle: stop line length check"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         6: .line 186
            aload 9 /* out */
            ldc "// GENERATED CONTENT - DO NOT EDIT"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 187
            aload 9 /* out */
            ldc "// Source: %s.java%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* topDeclaringClass */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         8: .line 188
            aload 9 /* out */
            ldc "// Generated-by: %s%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         9: .line 189
            aload 9 /* out */
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* pkg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        10: .line 190
            aload 9 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 191
            iconst_0
            istore 10 /* usesJObject */
        start local 10 // boolean usesJObject
        12: .line 192
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.ids:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 24
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
        13: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.libgraal.jni.annotation.FromLibGraalId
            astore 11 /* id */
        start local 11 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        14: .line 193
            aload 9 /* out */
            ldc "import static %s.%s;%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 11 /* id */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 36
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getName:()Ljava/lang/String;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        15: .line 194
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getReturnType:()Ljava/lang/Class;
            astore 13 /* returnType */
        start local 13 // java.lang.Class returnType
        16: .line 195
            aload 13 /* returnType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 18
        17: .line 196
            iconst_1
            istore 10 /* usesJObject */
        18: .line 198
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator java.lang.Class
      StackMap stack:
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getParameterTypes:()[Ljava/lang/Class;
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 23
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator java.lang.Class top int int java.lang.Class[]
      StackMap stack:
        19: aload 17
            iload 15
            aaload
            astore 14 /* t */
        start local 14 // java.lang.Class t
        20: .line 199
            aload 14 /* t */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 22
        21: .line 200
            iconst_1
            istore 10 /* usesJObject */
        end local 14 // java.lang.Class t
        22: .line 198
      StackMap locals:
      StackMap stack:
            iinc 15 1
      StackMap locals:
      StackMap stack:
        23: iload 15
            iload 16
            if_icmplt 19
        end local 13 // java.lang.Class returnType
        end local 11 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        24: .line 192
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        25: .line 204
            aload 9 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        26: .line 205
            aload 9 /* out */
            ldc "import org.graalvm.nativeimage.StackValue;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        27: .line 206
            aload 9 /* out */
            ldc "import org.graalvm.libgraal.jni.JNI.JNIEnv;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        28: .line 207
            aload 9 /* out */
            ldc "import org.graalvm.libgraal.jni.JNI.JValue;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        29: .line 208
            iload 10 /* usesJObject */
            ifeq 31
        30: .line 209
            aload 9 /* out */
            ldc "import org.graalvm.libgraal.jni.JNI.JObject;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        31: .line 211
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int
      StackMap stack:
            aload 9 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        32: .line 212
            aload 9 /* out */
            ldc "final class %s {%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* genClassName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        33: .line 213
            aload 1 /* info */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo.ids:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 71
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
        34: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.libgraal.jni.annotation.FromLibGraalId
            astore 11 /* id */
        start local 11 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        35: .line 214
            iconst_0
            istore 13 /* p */
        start local 13 // int p
        36: .line 215
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getName:()Ljava/lang/String;
            astore 14 /* idName */
        start local 14 // java.lang.String idName
        37: .line 216
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getReturnType:()Ljava/lang/Class;
            astore 15 /* rt */
        start local 15 // java.lang.Class rt
        38: .line 217
            aload 9 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        39: .line 218
            aload 15 /* rt */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 43
        40: .line 219
            aload 9 /* out */
            ldc "    @SuppressWarnings(\"unchecked\")"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        41: .line 220
            aload 9 /* out */
            ldc "    static <T extends JObject> T call%s(JNIEnv env"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* idName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        42: .line 221
            goto 44
        43: .line 222
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class
      StackMap stack:
            aload 9 /* out */
            ldc "    static %s call%s(JNIEnv env"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 15 /* rt */
            iconst_0
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.toJNIType:(Ljava/lang/Class;Z)Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 14 /* idName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        44: .line 224
      StackMap locals:
      StackMap stack:
            aload 11 /* id */
            invokeinterface org.graalvm.libgraal.jni.annotation.FromLibGraalId.getParameterTypes:()[Ljava/lang/Class;
            astore 16 /* parameterTypes */
        start local 16 // java.lang.Class[] parameterTypes
        45: .line 225
            aload 16 /* parameterTypes */
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 52
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        46: aload 20
            iload 18
            aaload
            astore 17 /* t */
        start local 17 // java.lang.Class t
        47: .line 226
            aload 9 /* out */
            ldc ", %s p%d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 17 /* t */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 48
            aload 17 /* t */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            goto 49
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class java.lang.Class[] java.lang.Class int int java.lang.Class[]
      StackMap stack: java.io.PrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int
        48: ldc "JObject"
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class java.lang.Class[] java.lang.Class int int java.lang.Class[]
      StackMap stack: java.io.PrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        49: aastore
            dup
            iconst_1
            iload 13 /* p */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        50: .line 227
            iinc 13 /* p */ 1
        end local 17 // java.lang.Class t
        51: .line 225
            iinc 18 1
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        52: iload 18
            iload 19
            if_icmplt 46
        53: .line 229
            aload 9 /* out */
            ldc ") {"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        54: .line 230
            aload 9 /* out */
            ldc "        JValue args = StackValue.get(%d, JValue.class);%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* parameterTypes */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        55: .line 231
            iconst_0
            istore 13 /* p */
        56: .line 232
            aload 16 /* parameterTypes */
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 61
      StackMap locals:
      StackMap stack:
        57: aload 20
            iload 18
            aaload
            astore 17 /* t */
        start local 17 // java.lang.Class t
        58: .line 233
            aload 9 /* out */
            ldc "        args.addressOf(%d).set%s(p%d);%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 13 /* p */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 17 /* t */
            iconst_1
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.toJNIType:(Ljava/lang/Class;Z)Ljava/lang/String;
            aastore
            dup
            iconst_2
            iload 13 /* p */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        59: .line 234
            iinc 13 /* p */ 1
        end local 17 // java.lang.Class t
        60: .line 232
            iinc 18 1
      StackMap locals:
      StackMap stack:
        61: iload 18
            iload 19
            if_icmplt 57
        62: .line 237
            aload 15 /* rt */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 65
        63: .line 238
            ldc "return (T) "
            astore 17 /* returnPrefix */
        start local 17 // java.lang.String returnPrefix
        64: .line 239
            goto 69
        end local 17 // java.lang.String returnPrefix
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int org.graalvm.libgraal.jni.annotation.FromLibGraalId java.util.Iterator int java.lang.String java.lang.Class java.lang.Class[]
      StackMap stack:
        65: aload 15 /* rt */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 68
        66: .line 240
            ldc ""
            astore 17 /* returnPrefix */
        start local 17 // java.lang.String returnPrefix
        67: .line 241
            goto 69
        end local 17 // java.lang.String returnPrefix
        68: .line 242
      StackMap locals:
      StackMap stack:
            ldc "return "
            astore 17 /* returnPrefix */
        start local 17 // java.lang.String returnPrefix
        69: .line 244
      StackMap locals: java.lang.String
      StackMap stack:
            aload 9 /* out */
            ldc "        %s%s.INSTANCE.call%s(env, %s, args);%n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 17 /* returnPrefix */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.getAccessorClassSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 15 /* rt */
            iconst_1
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.toJNIType:(Ljava/lang/Class;Z)Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 14 /* idName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        70: .line 245
            aload 9 /* out */
            ldc "    }"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 17 // java.lang.String returnPrefix
        end local 16 // java.lang.Class[] parameterTypes
        end local 15 // java.lang.Class rt
        end local 14 // java.lang.String idName
        end local 13 // int p
        end local 11 // org.graalvm.libgraal.jni.annotation.FromLibGraalId id
        71: .line 213
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        72: .line 247
            aload 9 /* out */
            ldc "}"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 10 // boolean usesJObject
        73: .line 248
            aload 9 /* out */
            ifnull 79
            aload 9 /* out */
            invokevirtual java.io.PrintWriter.close:()V
            goto 79
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo java.lang.String javax.lang.model.element.Name javax.lang.model.element.Element[] java.lang.String javax.annotation.processing.Filer java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.lang.Throwable
        74: astore 7
            aload 9 /* out */
            ifnull 75
            aload 9 /* out */
            invokevirtual java.io.PrintWriter.close:()V
        end local 9 // java.io.PrintWriter out
      StackMap locals:
      StackMap stack:
        75: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        76: astore 8
            aload 7
            ifnonnull 77
            aload 8
            astore 7
            goto 78
      StackMap locals:
      StackMap stack:
        77: aload 7
            aload 8
            if_acmpeq 78
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        78: aload 7
            athrow
        79: .line 249
      StackMap locals:
      StackMap stack:
            return
        end local 6 // javax.annotation.processing.Filer filer
        end local 5 // java.lang.String genClassName
        end local 4 // javax.lang.model.element.Element[] originatingElements
        end local 3 // javax.lang.model.element.Name topDeclaringClass
        end local 2 // java.lang.String pkg
        end local 1 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   80     0                 this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0   80     1                 info  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;
            0   80     2                  pkg  Ljava/lang/String;
            0   80     3    topDeclaringClass  Ljavax/lang/model/element/Name;
            0   80     4  originatingElements  [Ljavax/lang/model/element/Element;
            1   80     5         genClassName  Ljava/lang/String;
            2   80     6                filer  Ljavax/annotation/processing/Filer;
            4   75     9                  out  Ljava/io/PrintWriter;
           12   73    10          usesJObject  Z
           14   24    11                   id  Lorg/graalvm/libgraal/jni/annotation/FromLibGraalId;
           16   24    13           returnType  Ljava/lang/Class<*>;
           20   22    14                    t  Ljava/lang/Class<*>;
           35   71    11                   id  Lorg/graalvm/libgraal/jni/annotation/FromLibGraalId;
           36   71    13                    p  I
           37   71    14               idName  Ljava/lang/String;
           38   71    15                   rt  Ljava/lang/Class<*>;
           45   71    16       parameterTypes  [Ljava/lang/Class;
           47   51    17                    t  Ljava/lang/Class<*>;
           58   60    17                    t  Ljava/lang/Class<*>;
           64   65    17         returnPrefix  Ljava/lang/String;
           67   68    17         returnPrefix  Ljava/lang/String;
           69   71    17         returnPrefix  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4    73      74  any
           3    76      76  any
    MethodParameters:
                     Name  Flags
      info                 
      pkg                  
      topDeclaringClass    
      originatingElements  

  static java.io.PrintWriter createSourceFile(java.lang.String, java.lang.String, javax.annotation.processing.Filer, javax.lang.model.element.Element[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/annotation/processing/Filer;[Ljavax/lang/model/element/Element;)Ljava/io/PrintWriter;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.String pkg
        start local 1 // java.lang.String relativeName
        start local 2 // javax.annotation.processing.Filer filer
        start local 3 // javax.lang.model.element.Element[] originatingElements
         0: .line 254
            aload 2 /* filer */
            new java.lang.StringBuilder
            dup
            aload 0 /* pkg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* relativeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* originatingElements */
            invokeinterface javax.annotation.processing.Filer.createSourceFile:(Ljava/lang/CharSequence;[Ljavax/lang/model/element/Element;)Ljavax/tools/JavaFileObject;
            astore 4 /* sourceFile */
        start local 4 // javax.tools.JavaFileObject sourceFile
         1: .line 255
            new org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$1
            dup
            aload 4 /* sourceFile */
            invokeinterface javax.tools.JavaFileObject.openWriter:()Ljava/io/Writer;
            invokespecial org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$1.<init>:(Ljava/io/Writer;)V
         2: areturn
        end local 4 // javax.tools.JavaFileObject sourceFile
         3: .line 261
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         4: .line 262
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // javax.lang.model.element.Element[] originatingElements
        end local 2 // javax.annotation.processing.Filer filer
        end local 1 // java.lang.String relativeName
        end local 0 // java.lang.String pkg
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                  pkg  Ljava/lang/String;
            0    5     1         relativeName  Ljava/lang/String;
            0    5     2                filer  Ljavax/annotation/processing/Filer;
            0    5     3  originatingElements  [Ljavax/lang/model/element/Element;
            1    3     4           sourceFile  Ljavax/tools/JavaFileObject;
            4    5     4                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    MethodParameters:
                     Name  Flags
      pkg                  
      relativeName         
      filer                
      originatingElements  

  private java.lang.String getAccessorClassSimpleName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
         0: .line 267
            aconst_null
            astore 1 /* topLevel */
        start local 1 // java.lang.Class topLevel
         1: .line 268
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.idClass:Ljava/lang/Class;
            astore 2 /* current */
        start local 2 // java.lang.Class current
         2: goto 5
         3: .line 269
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            aload 2 /* current */
            astore 1 /* topLevel */
         4: .line 268
            aload 2 /* current */
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            astore 2 /* current */
      StackMap locals:
      StackMap stack:
         5: aload 2 /* current */
            ifnonnull 3
        end local 2 // java.lang.Class current
         6: .line 271
            ldc "%sCalls"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* topLevel */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Class topLevel
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            1    7     1  topLevel  Ljava/lang/Class<*>;
            2    6     2   current  Ljava/lang/Class<*>;

  public final 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: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
        start local 1 // java.util.Set annotations
        start local 2 // javax.annotation.processing.RoundEnvironment roundEnv
         0: .line 276
            aload 2 /* roundEnv */
            invokeinterface javax.annotation.processing.RoundEnvironment.processingOver:()Z
            ifeq 2
         1: .line 277
            iconst_1
            ireturn
         2: .line 280
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* calls */
        start local 3 // java.util.Map calls
         3: .line 281
            aload 1 /* annotations */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor java.util.Set javax.annotation.processing.RoundEnvironment java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeElement
            astore 4 /* supportedAnnotationElement */
        start local 4 // javax.lang.model.element.TypeElement supportedAnnotationElement
         5: .line 282
            aload 2 /* roundEnv */
            aload 4 /* supportedAnnotationElement */
            invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljavax/lang/model/element/TypeElement;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor java.util.Set javax.annotation.processing.RoundEnvironment java.util.Map javax.lang.model.element.TypeElement java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 6 /* element */
        start local 6 // javax.lang.model.element.Element element
         7: .line 283
            aload 0 /* this */
            aload 6 /* element */
            checkcast javax.lang.model.element.ExecutableElement
            aload 4 /* supportedAnnotationElement */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            aload 3 /* calls */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.processElement:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;Ljava/util/Map;)V
        end local 6 // javax.lang.model.element.Element element
         8: .line 282
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // javax.lang.model.element.TypeElement supportedAnnotationElement
         9: .line 281
      StackMap locals: org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor java.util.Set javax.annotation.processing.RoundEnvironment java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 287
            aload 3 /* calls */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo
            astore 4 /* info */
        start local 4 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        12: .line 288
            aload 0 /* this */
            aload 4 /* info */
            invokevirtual org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.createFiles:(Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;)V
        end local 4 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo info
        13: .line 287
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 290
            iconst_1
            ireturn
        end local 3 // java.util.Map calls
        end local 2 // javax.annotation.processing.RoundEnvironment roundEnv
        end local 1 // java.util.Set annotations
        end local 0 // org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   15     0                        this  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor<TT;>;
            0   15     1                 annotations  Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
            0   15     2                    roundEnv  Ljavax/annotation/processing/RoundEnvironment;
            3   15     3                       calls  Ljava/util/Map<Ljavax/lang/model/element/Element;Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;>;
            5    9     4  supportedAnnotationElement  Ljavax/lang/model/element/TypeElement;
            7    8     6                     element  Ljavax/lang/model/element/Element;
           12   13     4                        info  Lorg/graalvm/libgraal/jni/processor/AbstractFromLibGraalProcessor$CallsInfo;
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     
}
Signature: <T:Ljava/lang/Enum<TT;>;:Lorg/graalvm/libgraal/jni/annotation/FromLibGraalId;>Lorg/graalvm/compiler/processor/AbstractProcessor;
SourceFile: "AbstractFromLibGraalProcessor.java"
NestMembers:
  org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$1  org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo
InnerClasses:
  org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$1
  CallsInfo = org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor$CallsInfo of org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor