public class com.sun.tools.javah.JNI extends com.sun.tools.javah.Gen
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javah.JNI
  super_class: com.sun.tools.javah.Gen
{
  private static volatile int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.sun.tools.javah.Util);
    descriptor: (Lcom/sun/tools/javah/Util;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javah.JNI this
        start local 1 // com.sun.tools.javah.Util util
         0: .line 54
            aload 0 /* this */
            aload 1 /* util */
            invokespecial com.sun.tools.javah.Gen.<init>:(Lcom/sun/tools/javah/Util;)V
         1: .line 55
            return
        end local 1 // com.sun.tools.javah.Util util
        end local 0 // com.sun.tools.javah.JNI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javah/JNI;
            0    2     1  util  Lcom/sun/tools/javah/Util;
    MethodParameters:
      Name  Flags
      util  

  public java.lang.String getIncludes();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javah.JNI this
         0: .line 58
            ldc "#include <jni.h>"
            areturn
        end local 0 // com.sun.tools.javah.JNI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javah/JNI;

  public void write(java.io.OutputStream, javax.lang.model.element.TypeElement);
    descriptor: (Ljava/io/OutputStream;Ljavax/lang/model/element/TypeElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=18, args_size=3
        start local 0 // com.sun.tools.javah.JNI this
        start local 1 // java.io.OutputStream o
        start local 2 // javax.lang.model.element.TypeElement clazz
         0: .line 63
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.mangler:Lcom/sun/tools/javah/Mangle;
            aload 2 /* clazz */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            iconst_1
            invokevirtual com.sun.tools.javah.Mangle.mangle:(Ljava/lang/CharSequence;I)Ljava/lang/String;
            astore 3 /* cname */
        start local 3 // java.lang.String cname
         1: .line 64
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual com.sun.tools.javah.JNI.wrapWriter:(Ljava/io/OutputStream;)Ljava/io/PrintWriter;
            astore 4 /* pw */
        start local 4 // java.io.PrintWriter pw
         2: .line 65
            aload 4 /* pw */
            aload 0 /* this */
            aload 3 /* cname */
            invokevirtual com.sun.tools.javah.JNI.guardBegin:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 66
            aload 4 /* pw */
            aload 0 /* this */
            invokevirtual com.sun.tools.javah.JNI.cppGuardBegin:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         4: .line 69
            aload 0 /* this */
            aload 2 /* clazz */
            invokevirtual com.sun.tools.javah.JNI.getAllFields:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
            astore 5 /* classfields */
        start local 5 // java.util.List classfields
         5: .line 71
            aload 5 /* classfields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 6 /* v */
        start local 6 // javax.lang.model.element.VariableElement v
         7: .line 72
            aload 6 /* v */
            invokeinterface javax.lang.model.element.VariableElement.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 9
         8: .line 73
            goto 13
         9: .line 74
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List javax.lang.model.element.VariableElement java.util.Iterator
      StackMap stack:
            aconst_null
            astore 8 /* s */
        start local 8 // java.lang.String s
        10: .line 75
            aload 0 /* this */
            aload 2 /* clazz */
            aload 6 /* v */
            invokevirtual com.sun.tools.javah.JNI.defineForStatic:(Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/VariableElement;)Ljava/lang/String;
            astore 8 /* s */
        11: .line 76
            aload 8 /* s */
            ifnull 13
        12: .line 77
            aload 4 /* pw */
            aload 8 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String s
        end local 6 // javax.lang.model.element.VariableElement v
        13: .line 71
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        14: .line 82
            aload 2 /* clazz */
            invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            astore 6 /* classmethods */
        start local 6 // java.util.List classmethods
        15: .line 83
            aload 6 /* classmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 61
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        16: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 7 /* md */
        start local 7 // javax.lang.model.element.ExecutableElement md
        17: .line 84
            aload 7 /* md */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.NATIVE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 61
        18: .line 85
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.types:Ljavax/lang/model/util/Types;
            aload 7 /* md */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 9 /* mtr */
        start local 9 // javax.lang.model.type.TypeMirror mtr
        19: .line 86
            aload 0 /* this */
            aload 7 /* md */
            invokevirtual com.sun.tools.javah.JNI.signature:(Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
            astore 10 /* sig */
        start local 10 // java.lang.String sig
        20: .line 87
            new com.sun.tools.javah.TypeSignature
            dup
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.elems:Ljavax/lang/model/util/Elements;
            invokespecial com.sun.tools.javah.TypeSignature.<init>:(Ljavax/lang/model/util/Elements;)V
            astore 11 /* newtypesig */
        start local 11 // com.sun.tools.javah.TypeSignature newtypesig
        21: .line 88
            aload 7 /* md */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            astore 12 /* methodName */
        start local 12 // java.lang.CharSequence methodName
        22: .line 89
            iconst_0
            istore 13 /* longName */
        start local 13 // boolean longName
        23: .line 90
            aload 6 /* classmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 29
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int top java.util.Iterator
      StackMap stack:
        24: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 14 /* md2 */
        start local 14 // javax.lang.model.element.ExecutableElement md2
        25: .line 91
            aload 14 /* md2 */
            aload 7 /* md */
            if_acmpeq 29
        26: .line 92
            aload 12 /* methodName */
            aload 14 /* md2 */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 93
            aload 14 /* md2 */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.NATIVE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 29
        28: .line 94
            iconst_1
            istore 13 /* longName */
        end local 14 // javax.lang.model.element.ExecutableElement md2
        29: .line 90
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        30: .line 97
            aload 4 /* pw */
            ldc "/*"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        31: .line 98
            aload 4 /* pw */
            new java.lang.StringBuilder
            dup
            ldc " * Class:     "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cname */
            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
        32: .line 99
            aload 4 /* pw */
            new java.lang.StringBuilder
            dup
            ldc " * Method:    "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 100
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.mangler:Lcom/sun/tools/javah/Mangle;
            aload 12 /* methodName */
            iconst_2
            invokevirtual com.sun.tools.javah.Mangle.mangle:(Ljava/lang/CharSequence;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 99
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        35: .line 101
            aload 4 /* pw */
            new java.lang.StringBuilder
            dup
            ldc " * Signature: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* newtypesig */
            aload 10 /* sig */
            aload 9 /* mtr */
            invokevirtual com.sun.tools.javah.TypeSignature.getTypeSignature:(Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            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
        36: .line 102
            aload 4 /* pw */
            ldc " */"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        37: .line 103
            aload 4 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "JNIEXPORT "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 9 /* mtr */
            invokevirtual com.sun.tools.javah.JNI.jniType:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 104
            ldc " JNICALL "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 105
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.mangler:Lcom/sun/tools/javah/Mangle;
            aload 7 /* md */
            aload 2 /* clazz */
        40: .line 106
            iload 13 /* longName */
            ifeq 42
        41: .line 107
            bipush 8
            goto 43
        42: .line 108
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder com.sun.tools.javah.Mangle javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement
            bipush 7
        43: .line 105
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder com.sun.tools.javah.Mangle javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement int
            invokevirtual com.sun.tools.javah.Mangle.mangleMethod:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/TypeElement;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 103
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        45: .line 109
            aload 4 /* pw */
            ldc "  (JNIEnv *, "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        46: .line 110
            aload 7 /* md */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 14 /* paramargs */
        start local 14 // java.util.List paramargs
        47: .line 111
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 15 /* args */
        start local 15 // java.util.List args
        48: .line 112
            aload 14 /* paramargs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 51
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        49: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 16 /* p */
        start local 16 // javax.lang.model.element.VariableElement p
        50: .line 113
            aload 15 /* args */
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.types:Ljavax/lang/model/util/Types;
            aload 16 /* p */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // javax.lang.model.element.VariableElement p
        51: .line 112
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        52: .line 115
            aload 7 /* md */
            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
            ifeq 54
        53: .line 116
            aload 4 /* pw */
            ldc "jclass"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            goto 55
        54: .line 118
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int java.util.List java.util.List
      StackMap stack:
            aload 4 /* pw */
            ldc "jobject"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        55: .line 120
      StackMap locals:
      StackMap stack:
            aload 15 /* args */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 59
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.type.TypeMirror java.lang.String com.sun.tools.javah.TypeSignature java.lang.CharSequence int java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        56: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 16 /* arg */
        start local 16 // javax.lang.model.type.TypeMirror arg
        57: .line 121
            aload 4 /* pw */
            ldc ", "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        58: .line 122
            aload 4 /* pw */
            aload 0 /* this */
            aload 16 /* arg */
            invokevirtual com.sun.tools.javah.JNI.jniType:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        end local 16 // javax.lang.model.type.TypeMirror arg
        59: .line 120
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        60: .line 124
            aload 4 /* pw */
            new java.lang.StringBuilder
            dup
            ldc ");"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.lineSep:Ljava/lang/String;
            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
        end local 15 // java.util.List args
        end local 14 // java.util.List paramargs
        end local 13 // boolean longName
        end local 12 // java.lang.CharSequence methodName
        end local 11 // com.sun.tools.javah.TypeSignature newtypesig
        end local 10 // java.lang.String sig
        end local 9 // javax.lang.model.type.TypeMirror mtr
        end local 7 // javax.lang.model.element.ExecutableElement md
        61: .line 83
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement java.lang.String java.io.PrintWriter java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        62: .line 127
            aload 4 /* pw */
            aload 0 /* this */
            invokevirtual com.sun.tools.javah.JNI.cppGuardEnd:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        63: .line 128
            aload 4 /* pw */
            aload 0 /* this */
            aload 3 /* cname */
            invokevirtual com.sun.tools.javah.JNI.guardEnd:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 6 // java.util.List classmethods
        end local 5 // java.util.List classfields
        end local 4 // java.io.PrintWriter pw
        end local 3 // java.lang.String cname
        64: .line 129
            goto 67
      StackMap locals: com.sun.tools.javah.JNI java.io.OutputStream javax.lang.model.element.TypeElement
      StackMap stack: com.sun.tools.javah.TypeSignature$SignatureException
        65: astore 3 /* e */
        start local 3 // com.sun.tools.javah.TypeSignature$SignatureException e
        66: .line 130
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.util:Lcom/sun/tools/javah/Util;
            ldc "jni.sigerror"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            invokevirtual com.sun.tools.javah.TypeSignature$SignatureException.getMessage:()Ljava/lang/String;
            aastore
            invokevirtual com.sun.tools.javah.Util.error:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 3 // com.sun.tools.javah.TypeSignature$SignatureException e
        67: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.lang.model.element.TypeElement clazz
        end local 1 // java.io.OutputStream o
        end local 0 // com.sun.tools.javah.JNI this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   68     0          this  Lcom/sun/tools/javah/JNI;
            0   68     1             o  Ljava/io/OutputStream;
            0   68     2         clazz  Ljavax/lang/model/element/TypeElement;
            1   64     3         cname  Ljava/lang/String;
            2   64     4            pw  Ljava/io/PrintWriter;
            5   64     5   classfields  Ljava/util/List<Ljavax/lang/model/element/VariableElement;>;
            7   13     6             v  Ljavax/lang/model/element/VariableElement;
           10   13     8             s  Ljava/lang/String;
           15   64     6  classmethods  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           17   61     7            md  Ljavax/lang/model/element/ExecutableElement;
           19   61     9           mtr  Ljavax/lang/model/type/TypeMirror;
           20   61    10           sig  Ljava/lang/String;
           21   61    11    newtypesig  Lcom/sun/tools/javah/TypeSignature;
           22   61    12    methodName  Ljava/lang/CharSequence;
           23   61    13      longName  Z
           25   29    14           md2  Ljavax/lang/model/element/ExecutableElement;
           47   61    14     paramargs  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
           48   61    15          args  Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
           50   51    16             p  Ljavax/lang/model/element/VariableElement;
           57   59    16           arg  Ljavax/lang/model/type/TypeMirror;
           66   67     3             e  Lcom/sun/tools/javah/TypeSignature$SignatureException;
      Exception table:
        from    to  target  type
           0    64      65  Class com.sun.tools.javah.TypeSignature$SignatureException
    Exceptions:
      throws com.sun.tools.javah.Util$Exit
    MethodParameters:
       Name  Flags
      o      
      clazz  

  protected final java.lang.String jniType(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.sun.tools.javah.JNI this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 136
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.elems:Ljavax/lang/model/util/Elements;
            ldc "java.lang.Throwable"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* throwable */
        start local 2 // javax.lang.model.element.TypeElement throwable
         1: .line 137
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.elems:Ljavax/lang/model/util/Elements;
            ldc "java.lang.Class"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* jClass */
        start local 3 // javax.lang.model.element.TypeElement jClass
         2: .line 138
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.elems:Ljavax/lang/model/util/Elements;
            ldc "java.lang.String"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 4 /* jString */
        start local 4 // javax.lang.model.element.TypeElement jString
         3: .line 139
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.types:Ljavax/lang/model/util/Types;
            aload 1 /* t */
            invokeinterface javax.lang.model.util.Types.asElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/Element;
            astore 5 /* tclassDoc */
        start local 5 // javax.lang.model.element.Element tclassDoc
         4: .line 142
            invokestatic com.sun.tools.javah.JNI.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 1 - 13
                    1: 18
                    2: 19
                    3: 21
                    4: 22
                    5: 23
                    6: 20
                    7: 24
                    8: 25
                    9: 17
                   10: 33
                   11: 33
                   12: 5
                   13: 26
              default: 33
          }
         5: .line 144
      StackMap locals: com.sun.tools.javah.JNI javax.lang.model.type.TypeMirror javax.lang.model.element.TypeElement javax.lang.model.element.TypeElement javax.lang.model.element.TypeElement javax.lang.model.element.Element
      StackMap stack:
            aload 1 /* t */
            checkcast javax.lang.model.type.ArrayType
            invokeinterface javax.lang.model.type.ArrayType.getComponentType:()Ljavax/lang/model/type/TypeMirror;
            astore 6 /* ct */
        start local 6 // javax.lang.model.type.TypeMirror ct
         6: .line 145
            invokestatic com.sun.tools.javah.JNI.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 6 /* ct */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 1 - 13
                    1: 7
                    2: 8
                    3: 10
                    4: 11
                    5: 12
                    6: 9
                    7: 13
                    8: 14
                    9: 16
                   10: 16
                   11: 16
                   12: 15
                   13: 15
              default: 16
          }
         7: .line 146
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            ldc "jbooleanArray"
            areturn
         8: .line 147
      StackMap locals:
      StackMap stack:
            ldc "jbyteArray"
            areturn
         9: .line 148
      StackMap locals:
      StackMap stack:
            ldc "jcharArray"
            areturn
        10: .line 149
      StackMap locals:
      StackMap stack:
            ldc "jshortArray"
            areturn
        11: .line 150
      StackMap locals:
      StackMap stack:
            ldc "jintArray"
            areturn
        12: .line 151
      StackMap locals:
      StackMap stack:
            ldc "jlongArray"
            areturn
        13: .line 152
      StackMap locals:
      StackMap stack:
            ldc "jfloatArray"
            areturn
        14: .line 153
      StackMap locals:
      StackMap stack:
            ldc "jdoubleArray"
            areturn
        15: .line 155
      StackMap locals:
      StackMap stack:
            ldc "jobjectArray"
            areturn
        16: .line 156
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            aload 6 /* ct */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // javax.lang.model.type.TypeMirror ct
        17: .line 160
      StackMap locals:
      StackMap stack:
            ldc "void"
            areturn
        18: .line 161
      StackMap locals:
      StackMap stack:
            ldc "jboolean"
            areturn
        19: .line 162
      StackMap locals:
      StackMap stack:
            ldc "jbyte"
            areturn
        20: .line 163
      StackMap locals:
      StackMap stack:
            ldc "jchar"
            areturn
        21: .line 164
      StackMap locals:
      StackMap stack:
            ldc "jshort"
            areturn
        22: .line 165
      StackMap locals:
      StackMap stack:
            ldc "jint"
            areturn
        23: .line 166
      StackMap locals:
      StackMap stack:
            ldc "jlong"
            areturn
        24: .line 167
      StackMap locals:
      StackMap stack:
            ldc "jfloat"
            areturn
        25: .line 168
      StackMap locals:
      StackMap stack:
            ldc "jdouble"
            areturn
        26: .line 171
      StackMap locals:
      StackMap stack:
            aload 5 /* tclassDoc */
            aload 4 /* jString */
            invokeinterface javax.lang.model.element.Element.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 172
            ldc "jstring"
            areturn
        28: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.types:Ljavax/lang/model/util/Types;
            aload 1 /* t */
            aload 2 /* throwable */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 30
        29: .line 174
            ldc "jthrowable"
            areturn
        30: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.types:Ljavax/lang/model/util/Types;
            aload 1 /* t */
            aload 3 /* jClass */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 32
        31: .line 176
            ldc "jclass"
            areturn
        32: .line 178
      StackMap locals:
      StackMap stack:
            ldc "jobject"
            areturn
        33: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javah.JNI.util:Lcom/sun/tools/javah/Util;
            ldc "jni.unknown.type"
            invokevirtual com.sun.tools.javah.Util.bug:(Ljava/lang/String;)V
        34: .line 183
            aconst_null
            areturn
        end local 5 // javax.lang.model.element.Element tclassDoc
        end local 4 // javax.lang.model.element.TypeElement jString
        end local 3 // javax.lang.model.element.TypeElement jClass
        end local 2 // javax.lang.model.element.TypeElement throwable
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javah.JNI this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0       this  Lcom/sun/tools/javah/JNI;
            0   35     1          t  Ljavax/lang/model/type/TypeMirror;
            1   35     2  throwable  Ljavax/lang/model/element/TypeElement;
            2   35     3     jClass  Ljavax/lang/model/element/TypeElement;
            3   35     4    jString  Ljavax/lang/model/element/TypeElement;
            4   35     5  tclassDoc  Ljavax/lang/model/element/Element;
            6   17     6         ct  Ljavax/lang/model/type/TypeMirror;
    Exceptions:
      throws com.sun.tools.javah.Util$Exit
    MethodParameters:
      Name  Flags
      t     

  static int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 52
            getstatic com.sun.tools.javah.JNI.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.lang.model.type.TypeKind.values:()[Ljavax/lang/model/type/TypeKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.lang.model.type.TypeKind.ARRAY:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 12
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.lang.model.type.TypeKind.BOOLEAN:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.lang.model.type.TypeKind.BYTE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.lang.model.type.TypeKind.CHAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.lang.model.type.TypeKind.DOUBLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 8
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic javax.lang.model.type.TypeKind.ERROR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 14
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic javax.lang.model.type.TypeKind.EXECUTABLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 18
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic javax.lang.model.type.TypeKind.FLOAT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 7
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic javax.lang.model.type.TypeKind.INT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic javax.lang.model.type.TypeKind.INTERSECTION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 21
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic javax.lang.model.type.TypeKind.LONG:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_5
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic javax.lang.model.type.TypeKind.MODULE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 22
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic javax.lang.model.type.TypeKind.NONE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 10
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic javax.lang.model.type.TypeKind.NULL:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 11
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic javax.lang.model.type.TypeKind.OTHER:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 19
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic javax.lang.model.type.TypeKind.PACKAGE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 17
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic javax.lang.model.type.TypeKind.SHORT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_3
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 15
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic javax.lang.model.type.TypeKind.UNION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 20
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic javax.lang.model.type.TypeKind.VOID:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 9
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic javax.lang.model.type.TypeKind.WILDCARD:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 16
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            dup
            putstatic com.sun.tools.javah.JNI.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
}
SourceFile: "JNI.java"
InnerClasses:
  SignatureException = com.sun.tools.javah.TypeSignature$SignatureException of com.sun.tools.javah.TypeSignature
  public Exit = com.sun.tools.javah.Util$Exit of com.sun.tools.javah.Util