public class org.glassfish.gmbal.typelib.DeclarationFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.gmbal.typelib.DeclarationFactory
  super_class: java.lang.Object
{
  private static boolean DEBUG;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.util.Map<org.glassfish.gmbal.typelib.EvaluatedType, org.glassfish.gmbal.typelib.EvaluatedArrayType> arrayMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/glassfish/gmbal/typelib/EvaluatedType;Lorg/glassfish/gmbal/typelib/EvaluatedArrayType;>;

  private static final java.util.Map<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedClassDeclaration> simpleClassMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 32
            iconst_0
            putstatic org.glassfish.gmbal.typelib.DeclarationFactory.DEBUG:Z
         1: .line 35
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         2: .line 34
            putstatic org.glassfish.gmbal.typelib.DeclarationFactory.arrayMap:Ljava/util/Map;
         3: .line 38
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         4: .line 37
            putstatic org.glassfish.gmbal.typelib.DeclarationFactory.simpleClassMap:Ljava/util/Map;
         5: .line 38
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static synchronized org.glassfish.gmbal.typelib.EvaluatedArrayType egat(org.glassfish.gmbal.typelib.EvaluatedType);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedType;)Lorg/glassfish/gmbal/typelib/EvaluatedArrayType;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.glassfish.gmbal.typelib.EvaluatedType compType
         0: .line 50
            getstatic org.glassfish.gmbal.typelib.DeclarationFactory.arrayMap:Ljava/util/Map;
            aload 0 /* compType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedArrayType
            astore 1 /* result */
        start local 1 // org.glassfish.gmbal.typelib.EvaluatedArrayType result
         1: .line 51
            aload 1 /* result */
            ifnonnull 4
         2: .line 52
            new org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedArrayTypeImpl
            dup
            aload 0 /* compType */
            invokespecial org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedArrayTypeImpl.<init>:(Lorg/glassfish/gmbal/typelib/EvaluatedType;)V
            astore 1 /* result */
         3: .line 53
            getstatic org.glassfish.gmbal.typelib.DeclarationFactory.arrayMap:Ljava/util/Map;
            aload 0 /* compType */
            aload 1 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 56
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedArrayType
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // org.glassfish.gmbal.typelib.EvaluatedArrayType result
        end local 0 // org.glassfish.gmbal.typelib.EvaluatedType compType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  compType  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            1    5     1    result  Lorg/glassfish/gmbal/typelib/EvaluatedArrayType;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
          Name  Flags
      compType  final

  public static synchronized org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl(int, java.lang.String, java.util.List<org.glassfish.gmbal.typelib.EvaluatedClassDeclaration>, java.util.List<org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration>, java.util.List<org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration>, java.lang.Class, boolean);
    descriptor: (ILjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=9, locals=8, args_size=7
        start local 0 // int modifiers
        start local 1 // java.lang.String name
        start local 2 // java.util.List inheritance
        start local 3 // java.util.List methods
        start local 4 // java.util.List fields
        start local 5 // java.lang.Class cls
        start local 6 // boolean isImmutable
         0: .line 66
            aconst_null
            astore 7 /* result */
        start local 7 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration result
         1: .line 67
            aload 5 /* cls */
            invokevirtual java.lang.Class.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            arraylength
            ifne 3
         2: .line 69
            getstatic org.glassfish.gmbal.typelib.DeclarationFactory.simpleClassMap:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedClassDeclaration
            astore 7 /* result */
         3: .line 72
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedClassDeclaration
      StackMap stack:
            aload 7 /* result */
            ifnonnull 9
         4: .line 73
            new org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedClassDeclarationImpl
            dup
            iload 0 /* modifiers */
            aload 1 /* name */
         5: .line 74
            aload 2 /* inheritance */
            aload 3 /* methods */
            aload 4 /* fields */
            aload 5 /* cls */
            iload 6 /* isImmutable */
         6: .line 73
            invokespecial org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedClassDeclarationImpl.<init>:(ILjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/Class;Z)V
            astore 7 /* result */
         7: .line 75
            aload 7 /* result */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.simpleClass:()Z
            ifeq 9
         8: .line 76
            getstatic org.glassfish.gmbal.typelib.DeclarationFactory.simpleClassMap:Ljava/util/Map;
            aload 1 /* name */
            aload 7 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 80
      StackMap locals:
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 7 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration result
        end local 6 // boolean isImmutable
        end local 5 // java.lang.Class cls
        end local 4 // java.util.List fields
        end local 3 // java.util.List methods
        end local 2 // java.util.List inheritance
        end local 1 // java.lang.String name
        end local 0 // int modifiers
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0    modifiers  I
            0   10     1         name  Ljava/lang/String;
            0   10     2  inheritance  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;
            0   10     3      methods  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;>;
            0   10     4       fields  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;>;
            0   10     5          cls  Ljava/lang/Class;
            0   10     6  isImmutable  Z
            1   10     7       result  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    Signature: (ILjava/lang/String;Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;>;Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;>;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
             Name  Flags
      modifiers    final
      name         final
      inheritance  final
      methods      final
      fields       final
      cls          final
      isImmutable  final

  public static synchronized org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration efdecl(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, int, org.glassfish.gmbal.typelib.EvaluatedType, java.lang.String, java.lang.reflect.Field);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/lang/reflect/Field;)Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl
        start local 1 // int modifiers
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType ftype
        start local 3 // java.lang.String name
        start local 4 // java.lang.reflect.Field field
         0: .line 88
            new org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedFieldDeclarationImpl
            dup
         1: .line 89
            aload 0 /* ecdecl */
            iload 1 /* modifiers */
            aload 2 /* ftype */
            aload 3 /* name */
            aload 4 /* field */
         2: .line 88
            invokespecial org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedFieldDeclarationImpl.<init>:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/lang/reflect/Field;)V
            astore 5 /* result */
        start local 5 // org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration result
         3: .line 91
            aload 5 /* result */
            areturn
        end local 5 // org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration result
        end local 4 // java.lang.reflect.Field field
        end local 3 // java.lang.String name
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType ftype
        end local 1 // int modifiers
        end local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0     ecdecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0    4     1  modifiers  I
            0    4     2      ftype  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            0    4     3       name  Ljava/lang/String;
            0    4     4      field  Ljava/lang/reflect/Field;
            3    4     5     result  Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
           Name  Flags
      ecdecl     final
      modifiers  final
      ftype      final
      name       final
      field      final

  public static synchronized org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration emdecl(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, int, org.glassfish.gmbal.typelib.EvaluatedType, java.lang.String, java.util.List<org.glassfish.gmbal.typelib.EvaluatedType>, java.lang.reflect.Method);
    descriptor: (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;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl
        start local 1 // int modifiers
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType rtype
        start local 3 // java.lang.String name
        start local 4 // java.util.List ptypes
        start local 5 // java.lang.reflect.Method method
         0: .line 100
            new org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedMethodDeclarationImpl
            dup
         1: .line 101
            aload 0 /* ecdecl */
            iload 1 /* modifiers */
            aload 2 /* rtype */
            aload 3 /* name */
            aload 4 /* ptypes */
            aload 5 /* method */
         2: .line 100
            invokespecial org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedMethodDeclarationImpl.<init>:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/util/List;Ljava/lang/reflect/Method;)V
            astore 6 /* result */
        start local 6 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration result
         3: .line 103
            aload 6 /* result */
            areturn
        end local 6 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration result
        end local 5 // java.lang.reflect.Method method
        end local 4 // java.util.List ptypes
        end local 3 // java.lang.String name
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType rtype
        end local 1 // int modifiers
        end local 0 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0     ecdecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0    4     1  modifiers  I
            0    4     2      rtype  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            0    4     3       name  Ljava/lang/String;
            0    4     4     ptypes  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            0    4     5     method  Ljava/lang/reflect/Method;
            3    4     6     result  Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
    Signature: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedType;>;Ljava/lang/reflect/Method;)Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
           Name  Flags
      ecdecl     final
      modifiers  final
      rtype      final
      name       final
      ptypes     final
      method     final

  public static org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl(int, java.lang.String, java.lang.Class);
    descriptor: (ILjava/lang/String;Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // int modifiers
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class cls
         0: .line 108
            iload 0 /* modifiers */
            aload 1 /* name */
            aload 2 /* cls */
            iconst_0
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.ecdecl:(ILjava/lang/String;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            areturn
        end local 2 // java.lang.Class cls
        end local 1 // java.lang.String name
        end local 0 // int modifiers
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  modifiers  I
            0    1     1       name  Ljava/lang/String;
            0    1     2        cls  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      modifiers  final
      name       final
      cls        final

  public static org.glassfish.gmbal.typelib.EvaluatedClassDeclaration ecdecl(int, java.lang.String, java.lang.Class, boolean);
    descriptor: (ILjava/lang/String;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // int modifiers
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class cls
        start local 3 // boolean isImmutable
         0: .line 114
            iload 0 /* modifiers */
            aload 1 /* name */
         1: .line 115
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
         2: .line 116
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
         3: .line 117
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
            aload 2 /* cls */
         4: .line 118
            iload 3 /* isImmutable */
         5: .line 114
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.ecdecl:(ILjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/lang/Class;Z)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            areturn
        end local 3 // boolean isImmutable
        end local 2 // java.lang.Class cls
        end local 1 // java.lang.String name
        end local 0 // int modifiers
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0    modifiers  I
            0    6     1         name  Ljava/lang/String;
            0    6     2          cls  Ljava/lang/Class;
            0    6     3  isImmutable  Z
    MethodParameters:
             Name  Flags
      modifiers    final
      name         final
      cls          final
      isImmutable  
}
SourceFile: "DeclarationFactory.java"
NestMembers:
  org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedArrayTypeImpl  org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedClassDeclarationImpl  org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedFieldDeclarationImpl  org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedMethodDeclarationImpl
InnerClasses:
  private EvaluatedArrayTypeImpl = org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedArrayTypeImpl of org.glassfish.gmbal.typelib.DeclarationFactory
  private EvaluatedClassDeclarationImpl = org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedClassDeclarationImpl of org.glassfish.gmbal.typelib.DeclarationFactory
  private EvaluatedFieldDeclarationImpl = org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedFieldDeclarationImpl of org.glassfish.gmbal.typelib.DeclarationFactory
  private EvaluatedMethodDeclarationImpl = org.glassfish.gmbal.typelib.DeclarationFactory$EvaluatedMethodDeclarationImpl of org.glassfish.gmbal.typelib.DeclarationFactory