public class org.glassfish.gmbal.typelib.TypeEvaluator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.gmbal.typelib.TypeEvaluator
  super_class: java.lang.Object
{
  private static java.util.Map<java.lang.Class<?>, org.glassfish.gmbal.typelib.EvaluatedType> immutableTypes;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;

  private static java.util.Map<org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey, org.glassfish.gmbal.typelib.EvaluatedClassDeclaration> evalClassMap;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Map<Lorg/glassfish/gmbal/typelib/TypeEvaluator$EvalMapKey;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;

  private static java.util.List<org.glassfish.gmbal.typelib.EvaluatedType> emptyETList;
    descriptor: Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedType;>;

  private static java.util.Map<java.lang.Class, org.glassfish.gmbal.typelib.EvaluatedType> classMap;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Map<Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=16, args_size=0
         0: .line 60
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         1: .line 59
            putstatic org.glassfish.gmbal.typelib.TypeEvaluator.immutableTypes:Ljava/util/Map;
         2: .line 69
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         3: .line 68
            putstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
         4: .line 72
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
         5: .line 71
            putstatic org.glassfish.gmbal.typelib.TypeEvaluator.emptyETList:Ljava/util/List;
         6: .line 100
            bipush 23
            anewarray java.lang.Class
            dup
            iconst_0
         7: .line 101
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_3
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_4
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_5
         8: .line 102
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 6
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 7
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 8
         9: .line 103
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 9
            ldc Ljava/lang/Integer;
            aastore
            dup
            bipush 10
            ldc Ljava/lang/Byte;
            aastore
            dup
            bipush 11
            ldc Ljava/lang/Character;
            aastore
            dup
            bipush 12
        10: .line 104
            ldc Ljava/lang/Short;
            aastore
            dup
            bipush 13
            ldc Ljava/lang/Boolean;
            aastore
            dup
            bipush 14
            ldc Ljava/lang/Float;
            aastore
            dup
            bipush 15
            ldc Ljava/lang/Double;
            aastore
            dup
            bipush 16
        11: .line 105
            ldc Ljava/lang/Long;
            aastore
            dup
            bipush 17
            ldc Ljava/math/BigDecimal;
            aastore
            dup
            bipush 18
            ldc Ljava/math/BigInteger;
            aastore
            dup
            bipush 19
        12: .line 106
            ldc Ljava/util/Date;
            aastore
            dup
            bipush 20
            ldc Ljavax/management/ObjectName;
            aastore
            dup
            bipush 21
            ldc Ljava/lang/Class;
            aastore
            dup
            bipush 22
        13: .line 107
            ldc Ljava/lang/Number;
            aastore
        14: .line 100
            astore 0 /* classes */
        start local 0 // java.lang.Class[] classes
        15: .line 110
            ldc Ljava/lang/Object;
            astore 1 /* objectClass */
        start local 1 // java.lang.Class objectClass
        16: .line 111
            ldc Ljava/lang/String;
            astore 2 /* stringClass */
        start local 2 // java.lang.Class stringClass
        17: .line 112
            ldc Ljava/lang/Void;
            astore 3 /* voidClass */
        start local 3 // java.lang.Class voidClass
        18: .line 114
            aload 1 /* objectClass */
        19: .line 115
            ldc "toString"
            iconst_0
            anewarray java.lang.Class
        20: .line 114
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getDeclaredMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 4 /* toStringMethod */
        start local 4 // java.lang.reflect.Method toStringMethod
        21: .line 118
            aload 1 /* objectClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getECD:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 5 /* objectECD */
        start local 5 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration objectECD
        22: .line 119
            aload 3 /* voidClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getECD:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 6 /* voidECD */
        start local 6 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration voidECD
        23: .line 120
            aload 2 /* stringClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getECD:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 7 /* stringECD */
        start local 7 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration stringECD
        24: .line 123
            aload 5 /* objectECD */
            iconst_1
            aload 7 /* stringECD */
            ldc "toString"
        25: .line 124
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.emptyETList:Ljava/util/List;
            aload 4 /* toStringMethod */
        26: .line 123
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.emdecl:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/util/List;Ljava/lang/reflect/Method;)Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
        27: .line 122
            astore 8 /* toStringEMD */
        start local 8 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration toStringEMD
        28: .line 125
            iconst_1
            anewarray org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration
            dup
            iconst_0
        29: .line 126
            aload 8 /* toStringEMD */
            aastore
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.list:([Ljava/lang/Object;)Ljava/util/List;
            astore 9 /* toStringList */
        start local 9 // java.util.List toStringList
        30: .line 128
            iconst_1
            anewarray org.glassfish.gmbal.typelib.EvaluatedClassDeclaration
            dup
            iconst_0
        31: .line 129
            aload 5 /* objectECD */
            aastore
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.list:([Ljava/lang/Object;)Ljava/util/List;
            astore 10 /* objectList */
        start local 10 // java.util.List objectList
        32: .line 132
            aload 6 /* voidECD */
            aload 10 /* objectList */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.inheritance:(Ljava/util/List;)V
        33: .line 133
            aload 6 /* voidECD */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.freeze:()V
        34: .line 135
            aload 5 /* objectECD */
            aload 9 /* toStringList */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.methods:(Ljava/util/List;)V
        35: .line 136
            aload 5 /* objectECD */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.freeze:()V
        36: .line 138
            aload 7 /* stringECD */
            aload 10 /* objectList */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.inheritance:(Ljava/util/List;)V
        37: .line 139
            aload 7 /* stringECD */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.freeze:()V
        38: .line 142
            aload 6 /* voidECD */
            aload 3 /* voidClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.mapPut:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/Class;)V
        39: .line 143
            aload 5 /* objectECD */
            aload 1 /* objectClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.mapPut:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/Class;)V
        40: .line 144
            aload 7 /* stringECD */
            aload 2 /* stringClass */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.mapPut:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/Class;)V
        41: .line 147
            aload 0 /* classes */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 48
      StackMap locals: java.lang.Class[] java.lang.Class java.lang.Class java.lang.Class java.lang.reflect.Method org.glassfish.gmbal.typelib.EvaluatedClassDeclaration org.glassfish.gmbal.typelib.EvaluatedClassDeclaration org.glassfish.gmbal.typelib.EvaluatedClassDeclaration org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration java.util.List java.util.List top int int java.lang.Class[]
      StackMap stack:
        42: aload 14
            iload 12
            aaload
            astore 11 /* cls */
        start local 11 // java.lang.Class cls
        43: .line 148
            aload 11 /* cls */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getECD:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 15 /* ecd */
        start local 15 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecd
        44: .line 149
            aload 15 /* ecd */
            aload 10 /* objectList */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.inheritance:(Ljava/util/List;)V
        45: .line 150
            aload 15 /* ecd */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.freeze:()V
        46: .line 151
            aload 15 /* ecd */
            aload 11 /* cls */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.mapPut:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/Class;)V
        end local 15 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecd
        end local 11 // java.lang.Class cls
        47: .line 147
            iinc 12 1
      StackMap locals:
      StackMap stack:
        48: iload 12
            iload 13
            if_icmplt 42
        end local 10 // java.util.List objectList
        end local 9 // java.util.List toStringList
        end local 8 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration toStringEMD
        end local 7 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration stringECD
        end local 6 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration voidECD
        end local 5 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration objectECD
        end local 4 // java.lang.reflect.Method toStringMethod
        end local 3 // java.lang.Class voidClass
        end local 2 // java.lang.Class stringClass
        end local 1 // java.lang.Class objectClass
        end local 0 // java.lang.Class[] classes
        49: .line 153
            goto 52
      StackMap locals:
      StackMap stack: java.lang.Exception
        50: astore 0 /* exc */
        start local 0 // java.lang.Exception exc
        51: .line 154
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
            aload 0 /* exc */
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.internalTypeEvaluatorError:(Ljava/lang/Exception;)Ljava/lang/IllegalStateException;
            athrow
        end local 0 // java.lang.Exception exc
        52: .line 158
      StackMap locals:
      StackMap stack:
            ldc "org.glassfish.gmbal.TypelibDebugLevel"
            iconst_0
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
        53: .line 157
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.setDebugLevel:(I)V
        54: .line 271
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
        55: .line 270
            putstatic org.glassfish.gmbal.typelib.TypeEvaluator.classMap:Ljava/util/Map;
        56: .line 271
            return
      LocalVariableTable:
        Start  End  Slot            Name  Signature
           15   49     0         classes  [Ljava/lang/Class;
           16   49     1     objectClass  Ljava/lang/Class;
           17   49     2     stringClass  Ljava/lang/Class;
           18   49     3       voidClass  Ljava/lang/Class;
           21   49     4  toStringMethod  Ljava/lang/reflect/Method;
           22   49     5       objectECD  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
           23   49     6         voidECD  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
           24   49     7       stringECD  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
           28   49     8     toStringEMD  Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
           30   49     9    toStringList  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;>;
           32   49    10      objectList  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;
           43   47    11             cls  Ljava/lang/Class;
           44   47    15             ecd  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
           51   52     0             exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6    49      50  Class java.lang.Exception

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator this
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/gmbal/typelib/TypeEvaluator;

  private static void mapPut(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, java.lang.Class);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecd
        start local 1 // java.lang.Class cls
         0: .line 77
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.immutableTypes:Ljava/util/Map;
            aload 1 /* cls */
            aload 0 /* ecd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 79
            new org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey
            dup
            aload 1 /* cls */
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.emptyETList:Ljava/util/List;
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey.<init>:(Ljava/lang/Class;Ljava/util/List;)V
            astore 2 /* key */
        start local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey key
         2: .line 80
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
            aload 2 /* key */
            aload 0 /* ecd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 81
            return
        end local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey key
        end local 1 // java.lang.Class cls
        end local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   ecd  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0    4     1   cls  Ljava/lang/Class;
            2    4     2   key  Lorg/glassfish/gmbal/typelib/TypeEvaluator$EvalMapKey;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      ecd   
      cls   

  private static org.glassfish.gmbal.typelib.EvaluatedType getImmutableEvaluatedType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 167
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.immutableTypes:Ljava/util/Map;
            aload 0 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedType
            areturn
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cls  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    MethodParameters:
      Name  Flags
      cls   

  public static synchronized void setDebugLevel(int);
    descriptor: (I)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // int level
         0: .line 173
            return
        end local 0 // int level
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  level  I
    MethodParameters:
       Name  Flags
      level  

  private static org.glassfish.gmbal.typelib.EvaluatedClassDeclaration getECD(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 185
            iconst_1
         1: .line 186
            aload 0 /* cls */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 0 /* cls */
            iconst_1
         2: .line 185
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.ecdecl:(ILjava/lang/String;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            areturn
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   cls  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      cls   

  private static java.util.List<java.lang.reflect.Method> getDeclaredMethods(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 190
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sman */
        start local 1 // java.lang.SecurityManager sman
         1: .line 191
            aload 1 /* sman */
            ifnonnull 3
         2: .line 192
            aload 0 /* cls */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
         3: .line 195
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            new org.glassfish.gmbal.typelib.TypeEvaluator$1
            dup
            aload 0 /* cls */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$1.<init>:(Ljava/lang/Class;)V
         4: .line 194
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 1 // java.lang.SecurityManager sman
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   cls  Ljava/lang/Class<*>;
            1    5     1  sman  Ljava/lang/SecurityManager;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/reflect/Method;>;
    MethodParameters:
      Name  Flags
      cls   final

  private static java.util.List<java.lang.reflect.Field> getDeclaredFields(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 206
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sman */
        start local 1 // java.lang.SecurityManager sman
         1: .line 207
            aload 1 /* sman */
            ifnonnull 3
         2: .line 208
            aload 0 /* cls */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
         3: .line 211
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            new org.glassfish.gmbal.typelib.TypeEvaluator$2
            dup
            aload 0 /* cls */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$2.<init>:(Ljava/lang/Class;)V
         4: .line 210
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 1 // java.lang.SecurityManager sman
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   cls  Ljava/lang/Class<*>;
            1    5     1  sman  Ljava/lang/SecurityManager;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/reflect/Field;>;
    MethodParameters:
      Name  Flags
      cls   final

  private static java.lang.reflect.Method getDeclaredMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Class cls
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] sig
         0: .line 225
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sman */
        start local 3 // java.lang.SecurityManager sman
         1: .line 226
            aload 3 /* sman */
            ifnonnull 3
         2: .line 227
            aload 0 /* cls */
            aload 1 /* name */
            aload 2 /* sig */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            areturn
         3: .line 230
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            new org.glassfish.gmbal.typelib.TypeEvaluator$3
            dup
            aload 0 /* cls */
            aload 1 /* name */
            aload 2 /* sig */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$3.<init>:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         4: .line 229
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            areturn
        end local 3 // java.lang.SecurityManager sman
        end local 2 // java.lang.Class[] sig
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   cls  Ljava/lang/Class<*>;
            0    5     1  name  Ljava/lang/String;
            0    5     2   sig  [Ljava/lang/Class;
            1    5     3  sman  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.security.PrivilegedActionException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      cls   final
      name  final
      sig   final

  public static synchronized int evalClassMapSize();
    descriptor: ()I
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 240
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized void dumpEvalClassMap();
    descriptor: ()V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=5, args_size=0
         0: .line 244
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "TypeEvaluator: dumping eval class map"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 245
            iconst_0
            istore 0 /* numSystem */
        start local 0 // int numSystem
         2: .line 246
            iconst_0
            istore 1 /* total */
        start local 1 // int total
         3: .line 249
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: int int top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         5: .line 251
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\tKey:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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.PrintStream.println:(Ljava/lang/String;)V
         6: .line 252
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 254
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey.first:()Ljava/lang/Object;
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         8: .line 255
            aload 4 /* name */
            ldc "org.glassfish.gmbal"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 10
         9: .line 256
            iinc 0 /* numSystem */ 1
        10: .line 258
      StackMap locals: int int java.util.Map$Entry java.util.Iterator java.lang.String
      StackMap stack:
            iinc 1 /* total */ 1
        end local 4 // java.lang.String name
        end local 2 // java.util.Map$Entry entry
        11: .line 248
      StackMap locals: int int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 261
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        13: .line 262
            ldc "\nEvalClassMap contains %d entries, %d of which are system classes\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 263
            iload 1 /* total */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 0 /* numSystem */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        15: .line 261
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        16: .line 267
            return
        end local 1 // int total
        end local 0 // int numSystem
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            2   17     0  numSystem  I
            3   17     1      total  I
            5   11     2      entry  Ljava/util/Map$Entry<Lorg/glassfish/gmbal/typelib/TypeEvaluator$EvalMapKey;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;
            8   11     4       name  Ljava/lang/String;

  public static synchronized org.glassfish.gmbal.typelib.EvaluatedType getEvaluatedType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 280
            aconst_null
            astore 1 /* etype */
        start local 1 // org.glassfish.gmbal.typelib.EvaluatedType etype
         1: .line 282
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.classMap:Ljava/util/Map;
            aload 0 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedType
            astore 1 /* etype */
         2: .line 283
            aload 1 /* etype */
            ifnonnull 13
         3: .line 284
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor
            dup
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.<init>:()V
            astore 2 /* visitor */
        start local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor visitor
         4: .line 285
            aload 2 /* visitor */
            aload 0 /* cls */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 1 /* etype */
         5: .line 286
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.classMap:Ljava/util/Map;
            aload 0 /* cls */
            aload 1 /* etype */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor visitor
         6: .line 288
            goto 13
      StackMap locals: java.lang.Class org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
         7: astore 2 /* err */
        start local 2 // java.lang.Error err
         8: .line 291
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
            aload 0 /* cls */
         9: .line 292
            aload 2 /* err */
        10: .line 291
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.errorInTypeEval:(Ljava/lang/Class;Ljava/lang/Error;)Ljava/lang/IllegalStateException;
            astore 3 /* thr */
        start local 3 // java.lang.IllegalStateException thr
        11: .line 294
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.dumpEvalClassMap:()V
        12: .line 295
            aload 3 /* thr */
            athrow
        end local 3 // java.lang.IllegalStateException thr
        end local 2 // java.lang.Error err
        13: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* etype */
            areturn
        end local 1 // org.glassfish.gmbal.typelib.EvaluatedType etype
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0      cls  Ljava/lang/Class;
            1   14     1    etype  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            4    6     2  visitor  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            8   13     2      err  Ljava/lang/Error;
           11   13     3      thr  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           1     6       7  Class java.lang.Error
    MethodParameters:
      Name  Flags
      cls   
}
SourceFile: "TypeEvaluator.java"
NestMembers:
  org.glassfish.gmbal.typelib.TypeEvaluator$1  org.glassfish.gmbal.typelib.TypeEvaluator$2  org.glassfish.gmbal.typelib.TypeEvaluator$3  org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey  org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$1  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$2  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$3  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$4  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.glassfish.gmbal.typelib.TypeEvaluator$1
  org.glassfish.gmbal.typelib.TypeEvaluator$2
  org.glassfish.gmbal.typelib.TypeEvaluator$3
  private EvalMapKey = org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey of org.glassfish.gmbal.typelib.TypeEvaluator
  private PartialDefinitions = org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions of org.glassfish.gmbal.typelib.TypeEvaluator
  private TypeEvaluationVisitor = org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor of org.glassfish.gmbal.typelib.TypeEvaluator
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
      org.glassfish.gmbal.impl.trace.TraceTypelibEval()