public class org.aspectj.asm.AsmManager$ModelInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.asm.AsmManager$ModelInfo
  super_class: java.lang.Object
{
  private final java.util.Hashtable<java.lang.String, java.lang.Integer> nodeTypeCount;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;

  private final java.util.Properties extraProperties;
    descriptor: Ljava/util/Properties;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(org.aspectj.asm.IHierarchy, org.aspectj.asm.IRelationshipMap);
    descriptor: (Lorg/aspectj/asm/IHierarchy;Lorg/aspectj/asm/IRelationshipMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
        start local 1 // org.aspectj.asm.IHierarchy hierarchy
        start local 2 // org.aspectj.asm.IRelationshipMap relationshipMap
         0: .line 1179
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1176
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
         2: .line 1177
            aload 0 /* this */
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            putfield org.aspectj.asm.AsmManager$ModelInfo.extraProperties:Ljava/util/Properties;
         3: .line 1180
            aload 1 /* hierarchy */
            invokeinterface org.aspectj.asm.IHierarchy.getRoot:()Lorg/aspectj/asm/IProgramElement;
            astore 3 /* ipe */
        start local 3 // org.aspectj.asm.IProgramElement ipe
         4: .line 1181
            aload 0 /* this */
            aload 3 /* ipe */
            invokevirtual org.aspectj.asm.AsmManager$ModelInfo.walkModel:(Lorg/aspectj/asm/IProgramElement;)V
         5: .line 1182
            aload 0 /* this */
            ldc "FileMapSize"
            new java.lang.Integer
            dup
            aload 1 /* hierarchy */
            invokeinterface org.aspectj.asm.IHierarchy.getFileMapEntrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokespecial java.lang.Integer.<init>:(I)V
            invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
            invokevirtual org.aspectj.asm.AsmManager$ModelInfo.recordStat:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 1183
            aload 0 /* this */
            ldc "RelationshipMapSize"
            new java.lang.Integer
            dup
            aload 2 /* relationshipMap */
            invokeinterface org.aspectj.asm.IRelationshipMap.getEntries:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokespecial java.lang.Integer.<init>:(I)V
            invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
            invokevirtual org.aspectj.asm.AsmManager$ModelInfo.recordStat:(Ljava/lang/String;Ljava/lang/String;)V
         7: .line 1184
            return
        end local 3 // org.aspectj.asm.IProgramElement ipe
        end local 2 // org.aspectj.asm.IRelationshipMap relationshipMap
        end local 1 // org.aspectj.asm.IHierarchy hierarchy
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            0    8     1        hierarchy  Lorg/aspectj/asm/IHierarchy;
            0    8     2  relationshipMap  Lorg/aspectj/asm/IRelationshipMap;
            4    8     3              ipe  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
                 Name  Flags
      hierarchy        
      relationshipMap  

  private void walkModel(org.aspectj.asm.IProgramElement);
    descriptor: (Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
        start local 1 // org.aspectj.asm.IProgramElement ipe
         0: .line 1187
            aload 0 /* this */
            aload 1 /* ipe */
            invokevirtual org.aspectj.asm.AsmManager$ModelInfo.countNode:(Lorg/aspectj/asm/IProgramElement;)V
         1: .line 1188
            aload 1 /* ipe */
            invokeinterface org.aspectj.asm.IProgramElement.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.aspectj.asm.AsmManager$ModelInfo org.aspectj.asm.IProgramElement top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.aspectj.asm.IProgramElement
            astore 2 /* child */
        start local 2 // org.aspectj.asm.IProgramElement child
         3: .line 1189
            aload 0 /* this */
            aload 2 /* child */
            invokevirtual org.aspectj.asm.AsmManager$ModelInfo.walkModel:(Lorg/aspectj/asm/IProgramElement;)V
        end local 2 // org.aspectj.asm.IProgramElement child
         4: .line 1188
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1191
            return
        end local 1 // org.aspectj.asm.IProgramElement ipe
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            0    6     1    ipe  Lorg/aspectj/asm/IProgramElement;
            3    4     2  child  Lorg/aspectj/asm/IProgramElement;
    MethodParameters:
      Name  Flags
      ipe   

  private void countNode(org.aspectj.asm.IProgramElement);
    descriptor: (Lorg/aspectj/asm/IProgramElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
        start local 1 // org.aspectj.asm.IProgramElement ipe
         0: .line 1194
            aload 1 /* ipe */
            invokeinterface org.aspectj.asm.IProgramElement.getKind:()Lorg/aspectj/asm/IProgramElement$Kind;
            invokevirtual org.aspectj.asm.IProgramElement$Kind.toString:()Ljava/lang/String;
            astore 2 /* node */
        start local 2 // java.lang.String node
         1: .line 1195
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            aload 2 /* node */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* ctr */
        start local 3 // java.lang.Integer ctr
         2: .line 1196
            aload 3 /* ctr */
            ifnonnull 5
         3: .line 1197
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            aload 2 /* node */
            new java.lang.Integer
            dup
            iconst_1
            invokespecial java.lang.Integer.<init>:(I)V
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1198
            goto 7
         5: .line 1199
      StackMap locals: java.lang.String java.lang.Integer
      StackMap stack:
            new java.lang.Integer
            dup
            aload 3 /* ctr */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokespecial java.lang.Integer.<init>:(I)V
            astore 3 /* ctr */
         6: .line 1200
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            aload 2 /* node */
            aload 3 /* ctr */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1202
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Integer ctr
        end local 2 // java.lang.String node
        end local 1 // org.aspectj.asm.IProgramElement ipe
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            0    8     1   ipe  Lorg/aspectj/asm/IProgramElement;
            1    8     2  node  Ljava/lang/String;
            2    8     3   ctr  Ljava/lang/Integer;
    MethodParameters:
      Name  Flags
      ipe   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
         0: .line 1205
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 1206
            aload 1 /* sb */
            ldc "Model node summary:\n"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 1207
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* nodeKeys */
        start local 2 // java.util.Enumeration nodeKeys
         3: .line 1208
            goto 7
         4: .line 1209
      StackMap locals: java.lang.StringBuffer java.util.Enumeration
      StackMap stack:
            aload 2 /* nodeKeys */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         5: .line 1210
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            aload 3 /* key */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* ct */
        start local 4 // java.lang.Integer ct
         6: .line 1211
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            aload 3 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ct */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 4 // java.lang.Integer ct
        end local 3 // java.lang.String key
         7: .line 1208
      StackMap locals:
      StackMap stack:
            aload 2 /* nodeKeys */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
         8: .line 1213
            aload 1 /* sb */
            ldc "Model stats:\n"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         9: .line 1214
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.extraProperties:Ljava/util/Properties;
            invokevirtual java.util.Properties.keys:()Ljava/util/Enumeration;
            astore 3 /* ks */
        start local 3 // java.util.Enumeration ks
        10: .line 1215
            goto 14
        11: .line 1216
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 3 /* ks */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* k */
        start local 4 // java.lang.String k
        12: .line 1217
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.extraProperties:Ljava/util/Properties;
            aload 4 /* k */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* v */
        start local 5 // java.lang.String v
        13: .line 1218
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            aload 4 /* k */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* v */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 5 // java.lang.String v
        end local 4 // java.lang.String k
        14: .line 1215
      StackMap locals:
      StackMap stack:
            aload 3 /* ks */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 11
        15: .line 1220
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.util.Enumeration ks
        end local 2 // java.util.Enumeration nodeKeys
        end local 1 // java.lang.StringBuffer sb
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            1   16     1        sb  Ljava/lang/StringBuffer;
            3   16     2  nodeKeys  Ljava/util/Enumeration<Ljava/lang/String;>;
            5    7     3       key  Ljava/lang/String;
            6    7     4        ct  Ljava/lang/Integer;
           10   16     3        ks  Ljava/util/Enumeration<Ljava/lang/Object;>;
           12   14     4         k  Ljava/lang/String;
           13   14     5         v  Ljava/lang/String;

  public java.util.Properties getProperties();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
         0: .line 1224
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* p */
        start local 1 // java.util.Properties p
         1: .line 1225
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.nodeTypeCount:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.aspectj.asm.AsmManager$ModelInfo java.util.Properties top java.util.Iterator
      StackMap stack:
         2: 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
         3: .line 1226
            aload 1 /* p */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 1225
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1228
            aload 1 /* p */
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.extraProperties:Ljava/util/Properties;
            invokevirtual java.util.Properties.putAll:(Ljava/util/Map;)V
         6: .line 1229
            aload 1 /* p */
            areturn
        end local 1 // java.util.Properties p
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            1    7     1      p  Ljava/util/Properties;
            3    4     2  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;

  public void recordStat(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.aspectj.asm.AsmManager$ModelInfo this
        start local 1 // java.lang.String string
        start local 2 // java.lang.String string2
         0: .line 1233
            aload 0 /* this */
            getfield org.aspectj.asm.AsmManager$ModelInfo.extraProperties:Ljava/util/Properties;
            aload 1 /* string */
            aload 2 /* string2 */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 1234
            return
        end local 2 // java.lang.String string2
        end local 1 // java.lang.String string
        end local 0 // org.aspectj.asm.AsmManager$ModelInfo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/aspectj/asm/AsmManager$ModelInfo;
            0    2     1   string  Ljava/lang/String;
            0    2     2  string2  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      string   
      string2  
}
SourceFile: "AsmManager.java"
NestHost: org.aspectj.asm.AsmManager
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public ModelInfo = org.aspectj.asm.AsmManager$ModelInfo of org.aspectj.asm.AsmManager
  public Kind = org.aspectj.asm.IProgramElement$Kind of org.aspectj.asm.IProgramElement