public final class org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor extends org.graalvm.compiler.processor.AbstractProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor
  super_class: org.graalvm.compiler.processor.AbstractProcessor
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
         0: .line 56
            aload 0 /* this */
            invokespecial org.graalvm.compiler.processor.AbstractProcessor.<init>:()V
            return
        end local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/libgraal/jni/processor/FromLibGraalEntryPointsResolverProcessor;

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

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
        start local 1 // java.util.Set annotations
        start local 2 // javax.annotation.processing.RoundEnvironment roundEnv
         0: .line 65
            aload 2 /* roundEnv */
            invokeinterface javax.annotation.processing.RoundEnvironment.processingOver:()Z
            ifeq 2
         1: .line 66
            iconst_1
            ireturn
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc Lorg/graalvm/libgraal/jni/annotation/FromLibGraalEntryPointsResolver;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getTypeElement:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* resolverElement */
        start local 3 // javax.lang.model.element.TypeElement resolverElement
         3: .line 70
            aload 2 /* roundEnv */
            aload 3 /* resolverElement */
            invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljavax/lang/model/element/TypeElement;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.TypeElement top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 4 /* element */
        start local 4 // javax.lang.model.element.Element element
         5: .line 72
            aload 0 /* this */
            aload 4 /* element */
            aload 3 /* resolverElement */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processElement:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/DeclaredType;)V
         6: .line 73
            goto 9
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.TypeElement javax.lang.model.element.Element java.util.Iterator
      StackMap stack: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
         7: astore 6 /* e */
        start local 6 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException e
         8: .line 74
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
            aload 6 /* e */
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.getMessage:()Ljava/lang/String;
            aload 6 /* e */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.element:Ljavax/lang/model/element/Element;
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;)V
        end local 6 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException e
        end local 4 // javax.lang.model.element.Element element
         9: .line 70
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.TypeElement top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 77
            iconst_1
            ireturn
        end local 3 // javax.lang.model.element.TypeElement resolverElement
        end local 2 // javax.annotation.processing.RoundEnvironment roundEnv
        end local 1 // java.util.Set annotations
        end local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/graalvm/libgraal/jni/processor/FromLibGraalEntryPointsResolverProcessor;
            0   11     1      annotations  Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
            0   11     2         roundEnv  Ljavax/annotation/processing/RoundEnvironment;
            3   11     3  resolverElement  Ljavax/lang/model/element/TypeElement;
            5    9     4          element  Ljavax/lang/model/element/Element;
            8    9     6                e  Lorg/graalvm/libgraal/jni/processor/FromLibGraalEntryPointsResolverProcessor$ProcessingException;
      Exception table:
        from    to  target  type
           5     6       7  Class org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     

  private void processElement(javax.lang.model.element.Element, javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/DeclaredType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=17, args_size=3
        start local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
        start local 1 // javax.lang.model.element.Element annotatedElement
        start local 2 // javax.lang.model.type.DeclaredType annotationType
         0: .line 81
            aload 0 /* this */
            aload 1 /* annotatedElement */
            aload 2 /* annotationType */
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getAnnotation:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 3 /* annotation */
        start local 3 // javax.lang.model.element.AnnotationMirror annotation
         1: .line 82
            aload 3 /* annotation */
            ldc "entryPointsClassName"
            ldc Ljava/lang/String;
            invokestatic org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* entryPointsClassName */
        start local 4 // java.lang.String entryPointsClassName
         2: .line 83
            aload 3 /* annotation */
            ldc "value"
            ldc Ljavax/lang/model/type/TypeMirror;
            invokestatic org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 5 /* idType */
        start local 5 // javax.lang.model.type.TypeMirror idType
         3: .line 84
            aload 0 /* this */
            ldc Lorg/graalvm/libgraal/jni/annotation/FromLibGraalId;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getTypeElement:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 6 /* fromLibGraalId */
        start local 6 // javax.lang.model.type.TypeMirror fromLibGraalId
         4: .line 85
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 5 /* idType */
            aload 6 /* fromLibGraalId */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 8
         5: .line 86
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "The %s must implement %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* idType */
            checkcast javax.lang.model.type.DeclaredType
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            dup
            iconst_1
         6: .line 87
            aload 6 /* fromLibGraalId */
            checkcast javax.lang.model.type.DeclaredType
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
         7: .line 86
            aastore
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         8: .line 89
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.element.AnnotationMirror java.lang.String javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 1 /* annotatedElement */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* method */
        start local 7 // boolean method
        11: .line 90
            iconst_0
            istore 8 /* requiresJNIEnv */
        start local 8 // boolean requiresJNIEnv
        12: .line 91
            iload 7 /* method */
            ifeq 29
        13: .line 92
            aload 4 /* entryPointsClassName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 15
        14: .line 93
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "The FromLibGraalEntryPointsResolver on method cannot have entryPointsClassName."
            iconst_0
            anewarray java.lang.Object
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        15: .line 95
      StackMap locals: int int
      StackMap stack:
            aload 1 /* annotatedElement */
            checkcast javax.lang.model.element.ExecutableElement
            astore 9 /* methodElement */
        start local 9 // javax.lang.model.element.ExecutableElement methodElement
        16: .line 96
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 97
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "Method %s must be static."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        18: .line 99
      StackMap locals: javax.lang.model.element.ExecutableElement
      StackMap stack:
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 100
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "Method %s cannot be private."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        20: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* methodElement */
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.verifyParameters:(Ljavax/lang/model/element/ExecutableElement;)Z
            ifne 22
        21: .line 103
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "Method %s can have either a single JNIEnv parameter or no parameters."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        22: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "org.graalvm.libgraal.jni.JNI.JClass"
            invokevirtual org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.getTypeElement:(Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 10 /* jclass */
        start local 10 // javax.lang.model.type.TypeMirror jclass
        23: .line 106
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            aload 10 /* jclass */
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 25
        24: .line 107
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "Method %s must return JClass."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        25: .line 109
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 9 /* methodElement */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 26
            iconst_0
            goto 27
      StackMap locals:
      StackMap stack:
        26: iconst_1
      StackMap locals:
      StackMap stack: int
        27: istore 8 /* requiresJNIEnv */
        end local 10 // javax.lang.model.type.TypeMirror jclass
        end local 9 // javax.lang.model.element.ExecutableElement methodElement
        28: .line 110
            goto 31
        29: .line 111
      StackMap locals:
      StackMap stack:
            aload 4 /* entryPointsClassName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 31
        30: .line 112
            new org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
            dup
            aload 1 /* annotatedElement */
            ldc "The FromLibGraalEntryPointsResolver on class or package must have entryPointsClassName."
            iconst_0
            anewarray java.lang.Object
            invokespecial org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        31: .line 115
      StackMap locals:
      StackMap stack:
            aload 1 /* annotatedElement */
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.topDeclaringType:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            astore 9 /* topEnclosingElement */
        start local 9 // javax.lang.model.element.TypeElement topEnclosingElement
        32: .line 116
            aload 9 /* topEnclosingElement */
            invokeinterface javax.lang.model.element.TypeElement.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 10 /* pkg */
        start local 10 // java.lang.String pkg
        33: .line 117
            aload 5 /* idType */
            checkcast javax.lang.model.type.DeclaredType
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 11 /* idElement */
        start local 11 // javax.lang.model.element.TypeElement idElement
        34: .line 118
            aload 11 /* idElement */
            invokestatic org.graalvm.libgraal.jni.processor.AbstractFromLibGraalProcessor.topDeclaringType:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            astore 12 /* idTopEncloingElement */
        start local 12 // javax.lang.model.element.TypeElement idTopEncloingElement
        35: .line 119
            ldc "%sCalls"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 12 /* idTopEncloingElement */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 13 /* simpleName */
        start local 13 // java.lang.String simpleName
        36: .line 120
            aconst_null
            astore 14
            aconst_null
            astore 15
        37: aload 10 /* pkg */
            aload 13 /* simpleName */
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getFiler:()Ljavax/annotation/processing/Filer;
            iconst_1
            anewarray javax.lang.model.element.Element
            dup
            iconst_0
            aload 1 /* annotatedElement */
            aastore
            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 16 /* out */
        start local 16 // java.io.PrintWriter out
        38: .line 121
            aload 16 /* out */
            ldc "// CheckStyle: stop header check"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        39: .line 122
            aload 16 /* out */
            ldc "// CheckStyle: stop line length check"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        40: .line 123
            aload 16 /* out */
            ldc "// GENERATED CONTENT - DO NOT EDIT"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        41: .line 124
            aload 16 /* out */
            ldc "// Source: %s.java%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* topEnclosingElement */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        42: .line 125
            aload 16 /* 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
        43: .line 126
            aload 16 /* out */
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* 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
        44: .line 127
            aload 16 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        45: .line 128
            aload 10 /* pkg */
            ldc "org.graalvm.libgraal.jni"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
        46: .line 129
            aload 16 /* out */
            ldc "import org.graalvm.libgraal.jni.FromLibGraalCalls;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        47: .line 131
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.element.AnnotationMirror java.lang.String javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.TypeElement java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.TypeElement java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack:
            aload 16 /* out */
            ldc "import org.graalvm.libgraal.jni.JNI.JClass;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        48: .line 132
            aload 16 /* out */
            ldc "import org.graalvm.libgraal.jni.JNI.JNIEnv;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        49: .line 133
            aload 16 /* out */
            ldc "import %s;%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 11 /* idElement */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        50: .line 134
            aload 16 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        51: .line 135
            aload 16 /* out */
            ldc "class %s extends FromLibGraalCalls<%s> {%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* simpleName */
            aastore
            dup
            iconst_1
            aload 11 /* idElement */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        52: .line 136
            aload 16 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        53: .line 137
            aload 16 /* out */
            ldc "    static final %s INSTANCE = new %s();%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* simpleName */
            aastore
            dup
            iconst_1
            aload 13 /* simpleName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        54: .line 138
            aload 16 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        55: .line 139
            aload 16 /* out */
            ldc "    private %s() {%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* simpleName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        56: .line 140
            aload 16 /* out */
            ldc "        super(%s.class);%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 11 /* idElement */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        57: .line 141
            aload 16 /* out */
            ldc "    }"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        58: .line 142
            aload 16 /* out */
            ldc ""
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        59: .line 143
            aload 16 /* out */
            ldc "    @Override"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        60: .line 144
            aload 16 /* out */
            ldc "    protected JClass resolvePeer(JNIEnv env) {"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        61: .line 145
            iload 7 /* method */
            ifeq 70
        62: .line 146
            aload 16 /* out */
            ldc "        return %s.%s(%s);%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        63: .line 147
            aload 1 /* annotatedElement */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            dup
            iconst_1
        64: .line 148
            aload 1 /* annotatedElement */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            dup
            iconst_2
        65: .line 149
            iload 8 /* requiresJNIEnv */
            ifeq 66
            ldc "env"
            goto 67
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.element.AnnotationMirror java.lang.String javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.TypeElement java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.TypeElement java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.io.PrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int
        66: ldc ""
      StackMap locals: org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.element.AnnotationMirror java.lang.String javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.TypeElement java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.TypeElement java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.io.PrintWriter java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        67: aastore
        68: .line 146
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        69: .line 150
            goto 71
        70: .line 151
      StackMap locals:
      StackMap stack:
            aload 16 /* out */
            ldc "        return getJNIClass(env, \"%s\");%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* entryPointsClassName */
            aastore
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        71: .line 153
      StackMap locals:
      StackMap stack:
            aload 16 /* out */
            ldc "    }"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        72: .line 154
            aload 16 /* out */
            ldc "}"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        73: .line 155
            aload 16 /* out */
            ifnull 79
            aload 16 /* out */
            invokevirtual java.io.PrintWriter.close:()V
            goto 79
      StackMap locals:
      StackMap stack: java.lang.Throwable
        74: astore 14
            aload 16 /* out */
            ifnull 75
            aload 16 /* out */
            invokevirtual java.io.PrintWriter.close:()V
        end local 16 // java.io.PrintWriter out
      StackMap locals:
      StackMap stack:
        75: aload 14
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        76: astore 15
            aload 14
            ifnonnull 77
            aload 15
            astore 14
            goto 78
      StackMap locals:
      StackMap stack:
        77: aload 14
            aload 15
            if_acmpeq 78
            aload 14
            aload 15
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        78: aload 14
            athrow
        79: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 13 // java.lang.String simpleName
        end local 12 // javax.lang.model.element.TypeElement idTopEncloingElement
        end local 11 // javax.lang.model.element.TypeElement idElement
        end local 10 // java.lang.String pkg
        end local 9 // javax.lang.model.element.TypeElement topEnclosingElement
        end local 8 // boolean requiresJNIEnv
        end local 7 // boolean method
        end local 6 // javax.lang.model.type.TypeMirror fromLibGraalId
        end local 5 // javax.lang.model.type.TypeMirror idType
        end local 4 // java.lang.String entryPointsClassName
        end local 3 // javax.lang.model.element.AnnotationMirror annotation
        end local 2 // javax.lang.model.type.DeclaredType annotationType
        end local 1 // javax.lang.model.element.Element annotatedElement
        end local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   80     0                  this  Lorg/graalvm/libgraal/jni/processor/FromLibGraalEntryPointsResolverProcessor;
            0   80     1      annotatedElement  Ljavax/lang/model/element/Element;
            0   80     2        annotationType  Ljavax/lang/model/type/DeclaredType;
            1   80     3            annotation  Ljavax/lang/model/element/AnnotationMirror;
            2   80     4  entryPointsClassName  Ljava/lang/String;
            3   80     5                idType  Ljavax/lang/model/type/TypeMirror;
            4   80     6        fromLibGraalId  Ljavax/lang/model/type/TypeMirror;
           11   80     7                method  Z
           12   80     8        requiresJNIEnv  Z
           16   28     9         methodElement  Ljavax/lang/model/element/ExecutableElement;
           23   28    10                jclass  Ljavax/lang/model/type/TypeMirror;
           32   80     9   topEnclosingElement  Ljavax/lang/model/element/TypeElement;
           33   80    10                   pkg  Ljava/lang/String;
           34   80    11             idElement  Ljavax/lang/model/element/TypeElement;
           35   80    12  idTopEncloingElement  Ljavax/lang/model/element/TypeElement;
           36   80    13            simpleName  Ljava/lang/String;
           38   75    16                   out  Ljava/io/PrintWriter;
      Exception table:
        from    to  target  type
          38    73      74  any
          37    76      76  any
    Exceptions:
      throws org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
    MethodParameters:
                  Name  Flags
      annotatedElement  
      annotationType    

  private boolean verifyParameters(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
        start local 1 // javax.lang.model.element.ExecutableElement method
         0: .line 159
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 2 /* params */
        start local 2 // java.util.List params
         1: .line 160
            aload 2 /* params */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 161
            iconst_1
            ireturn
         3: .line 163
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* params */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 8
         4: .line 164
            aload 2 /* params */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 3 /* param */
        start local 3 // javax.lang.model.element.VariableElement param
         5: .line 165
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            ldc "org.graalvm.libgraal.jni.JNI.JNIEnv"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 4 /* expectedType */
        start local 4 // javax.lang.model.type.TypeMirror expectedType
         6: .line 166
            aload 3 /* param */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 5 /* actualType */
        start local 5 // javax.lang.model.type.TypeMirror actualType
         7: .line 167
            aload 0 /* this */
            getfield org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 4 /* expectedType */
            aload 5 /* actualType */
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ireturn
        end local 5 // javax.lang.model.type.TypeMirror actualType
        end local 4 // javax.lang.model.type.TypeMirror expectedType
        end local 3 // javax.lang.model.element.VariableElement param
         8: .line 169
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.List params
        end local 1 // javax.lang.model.element.ExecutableElement method
        end local 0 // org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/graalvm/libgraal/jni/processor/FromLibGraalEntryPointsResolverProcessor;
            0    9     1        method  Ljavax/lang/model/element/ExecutableElement;
            1    9     2        params  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
            5    8     3         param  Ljavax/lang/model/element/VariableElement;
            6    8     4  expectedType  Ljavax/lang/model/type/TypeMirror;
            7    8     5    actualType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
        Name  Flags
      method  
}
SourceFile: "FromLibGraalEntryPointsResolverProcessor.java"
NestMembers:
  org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException
InnerClasses:
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
  private final ProcessingException = org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor$ProcessingException of org.graalvm.libgraal.jni.processor.FromLibGraalEntryPointsResolverProcessor
    RuntimeVisibleAnnotations: 
      javax.annotation.processing.SupportedAnnotationTypes(value = {"org.graalvm.libgraal.jni.annotation.FromLibGraalEntryPointsResolver"})