public class org.eclipse.jdt.internal.core.ExternalAnnotationTracker implements org.eclipse.core.resources.IResourceChangeListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.ExternalAnnotationTracker
  super_class: java.lang.Object
{
  org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode tree;
    descriptor: Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    flags: (0x0000) 

  private static org.eclipse.jdt.internal.core.ExternalAnnotationTracker singleton;
    descriptor: Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
         0: .line 125
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 122
            aload 0 /* this */
            new org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
            dup
            aconst_null
            aconst_null
            invokespecial org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.<init>:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;)V
            putfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
         2: .line 125
            return
        end local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;

  static void start(org.eclipse.core.resources.IWorkspace);
    descriptor: (Lorg/eclipse/core/resources/IWorkspace;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.core.resources.IWorkspace workspace
         0: .line 129
            new org.eclipse.jdt.internal.core.ExternalAnnotationTracker
            dup
            invokespecial org.eclipse.jdt.internal.core.ExternalAnnotationTracker.<init>:()V
            putstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
         1: .line 130
            aload 0 /* workspace */
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            invokeinterface org.eclipse.core.resources.IWorkspace.addResourceChangeListener:(Lorg/eclipse/core/resources/IResourceChangeListener;)V
         2: .line 131
            return
        end local 0 // org.eclipse.core.resources.IWorkspace workspace
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  workspace  Lorg/eclipse/core/resources/IWorkspace;
    MethodParameters:
           Name  Flags
      workspace  

  static void shutdown(org.eclipse.core.resources.IWorkspace);
    descriptor: (Lorg/eclipse/core/resources/IWorkspace;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.core.resources.IWorkspace workspace
         0: .line 135
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            ifnull 3
         1: .line 136
            aload 0 /* workspace */
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            invokeinterface org.eclipse.core.resources.IWorkspace.removeResourceChangeListener:(Lorg/eclipse/core/resources/IResourceChangeListener;)V
         2: .line 137
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            aconst_null
            putfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
         3: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.eclipse.core.resources.IWorkspace workspace
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  workspace  Lorg/eclipse/core/resources/IWorkspace;
    MethodParameters:
           Name  Flags
      workspace  

  public static void registerClassFile(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.jdt.internal.core.ClassFile);
    descriptor: (Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/ClassFile;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.eclipse.core.runtime.IPath annotationBase
        start local 1 // org.eclipse.core.runtime.IPath relativeAnnotationPath
        start local 2 // org.eclipse.jdt.internal.core.ClassFile classFile
         0: .line 153
            aload 0 /* annotationBase */
            invokeinterface org.eclipse.core.runtime.IPath.segmentCount:()I
            istore 3 /* baseDepth */
        start local 3 // int baseDepth
         1: .line 154
            iload 3 /* baseDepth */
            ifne 4
         2: .line 155
            new java.lang.IllegalArgumentException
            dup
            ldc "annotationBase cannot be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;)V
         3: .line 156
            goto 7
         4: .line 157
      StackMap locals: int
      StackMap stack:
            aload 1 /* relativeAnnotationPath */
            ldc "eea"
            invokeinterface org.eclipse.core.runtime.IPath.addFileExtension:(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;
            astore 1 /* relativeAnnotationPath */
         5: .line 158
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            aload 0 /* annotationBase */
            iload 3 /* baseDepth */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.getAnnotationBase:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;II)Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            astore 4 /* base */
        start local 4 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode base
         6: .line 159
            aload 4 /* base */
            aload 1 /* relativeAnnotationPath */
            aload 2 /* classFile */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.registerClassFile:(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/ClassFile;)V
        end local 4 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode base
         7: .line 161
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int baseDepth
        end local 2 // org.eclipse.jdt.internal.core.ClassFile classFile
        end local 1 // org.eclipse.core.runtime.IPath relativeAnnotationPath
        end local 0 // org.eclipse.core.runtime.IPath annotationBase
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0          annotationBase  Lorg/eclipse/core/runtime/IPath;
            0    8     1  relativeAnnotationPath  Lorg/eclipse/core/runtime/IPath;
            0    8     2               classFile  Lorg/eclipse/jdt/internal/core/ClassFile;
            1    8     3               baseDepth  I
            6    7     4                    base  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    MethodParameters:
                        Name  Flags
      annotationBase          
      relativeAnnotationPath  
      classFile               

  public static void unregisterClassFile(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath);
    descriptor: (Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IPath;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.eclipse.core.runtime.IPath annotationBase
        start local 1 // org.eclipse.core.runtime.IPath relativeAnnotationPath
         0: .line 170
            aload 0 /* annotationBase */
            invokeinterface org.eclipse.core.runtime.IPath.segmentCount:()I
            istore 2 /* baseDepth */
        start local 2 // int baseDepth
         1: .line 171
            iload 2 /* baseDepth */
            ifne 4
         2: .line 172
            new java.lang.IllegalArgumentException
            dup
            ldc "annotationBase cannot be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;)V
         3: .line 173
            goto 7
         4: .line 174
      StackMap locals: int
      StackMap stack:
            aload 1 /* relativeAnnotationPath */
            ldc "eea"
            invokeinterface org.eclipse.core.runtime.IPath.addFileExtension:(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;
            astore 1 /* relativeAnnotationPath */
         5: .line 175
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            getstatic org.eclipse.jdt.internal.core.ExternalAnnotationTracker.singleton:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            aload 0 /* annotationBase */
            iload 2 /* baseDepth */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.getAnnotationBase:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;II)Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            astore 3 /* base */
        start local 3 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode base
         6: .line 176
            aload 3 /* base */
            aload 1 /* relativeAnnotationPath */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.unregisterClassFile:(Lorg/eclipse/core/runtime/IPath;)V
        end local 3 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode base
         7: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int baseDepth
        end local 1 // org.eclipse.core.runtime.IPath relativeAnnotationPath
        end local 0 // org.eclipse.core.runtime.IPath annotationBase
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0          annotationBase  Lorg/eclipse/core/runtime/IPath;
            0    8     1  relativeAnnotationPath  Lorg/eclipse/core/runtime/IPath;
            1    8     2               baseDepth  I
            6    7     3                    base  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    MethodParameters:
                        Name  Flags
      annotationBase          
      relativeAnnotationPath  

  private org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode getAnnotationBase(org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode, org.eclipse.core.runtime.IPath, int, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;II)Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
        start local 1 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode current
        start local 2 // org.eclipse.core.runtime.IPath annotationBase
        start local 3 // int baseDepth
        start local 4 // int nextDepth
         0: .line 181
            aload 2 /* annotationBase */
            iload 4 /* nextDepth */
            invokeinterface org.eclipse.core.runtime.IPath.uptoSegment:(I)Lorg/eclipse/core/runtime/IPath;
            astore 5 /* nextHead */
        start local 5 // org.eclipse.core.runtime.IPath nextHead
         1: .line 182
            aload 1 /* current */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.getChildren:()Ljava/util/Map;
            astore 6 /* children */
        start local 6 // java.util.Map children
         2: .line 183
            aload 6 /* children */
            aload 5 /* nextHead */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
            astore 7 /* nextHeadNode */
        start local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode nextHeadNode
         3: .line 184
            aload 7 /* nextHeadNode */
            ifnonnull 5
         4: .line 185
            aload 6 /* children */
            aload 5 /* nextHead */
            new org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
            dup
            aload 1 /* current */
            aload 5 /* nextHead */
            invokespecial org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.<init>:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;)V
            dup
            astore 7 /* nextHeadNode */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 186
      StackMap locals: org.eclipse.core.runtime.IPath java.util.Map org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
      StackMap stack:
            iload 3 /* baseDepth */
            iload 4 /* nextDepth */
            if_icmpne 7
         6: .line 187
            aload 7 /* nextHeadNode */
            areturn
         7: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* nextHeadNode */
            aload 2 /* annotationBase */
            iload 3 /* baseDepth */
            iload 4 /* nextDepth */
            iconst_1
            iadd
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.getAnnotationBase:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/runtime/IPath;II)Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            areturn
        end local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode nextHeadNode
        end local 6 // java.util.Map children
        end local 5 // org.eclipse.core.runtime.IPath nextHead
        end local 4 // int nextDepth
        end local 3 // int baseDepth
        end local 2 // org.eclipse.core.runtime.IPath annotationBase
        end local 1 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode current
        end local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            0    8     1         current  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            0    8     2  annotationBase  Lorg/eclipse/core/runtime/IPath;
            0    8     3       baseDepth  I
            0    8     4       nextDepth  I
            1    8     5        nextHead  Lorg/eclipse/core/runtime/IPath;
            2    8     6        children  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;>;
            3    8     7    nextHeadNode  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    MethodParameters:
                Name  Flags
      current         
      annotationBase  
      baseDepth       
      nextDepth       

  public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent);
    descriptor: (Lorg/eclipse/core/resources/IResourceChangeEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
        start local 1 // org.eclipse.core.resources.IResourceChangeEvent event
         0: .line 196
            aload 1 /* event */
            invokeinterface org.eclipse.core.resources.IResourceChangeEvent.getDelta:()Lorg/eclipse/core/resources/IResourceDelta;
            astore 2 /* delta */
        start local 2 // org.eclipse.core.resources.IResourceDelta delta
         1: .line 197
            aload 2 /* delta */
            ifnull 9
            aload 2 /* delta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.isRoot:()Z
            ifeq 9
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            ifnull 9
         2: .line 198
            aload 2 /* delta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getAffectedChildren:()[Lorg/eclipse/core/resources/IResourceDelta;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.core.resources.IResourceChangeEvent org.eclipse.core.resources.IResourceDelta top int int org.eclipse.core.resources.IResourceDelta[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* child */
        start local 3 // org.eclipse.core.resources.IResourceDelta child
         4: .line 199
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker.tree:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            aload 3 /* child */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
            astore 7 /* directoryNode */
        start local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode directoryNode
         5: .line 200
            aload 7 /* directoryNode */
            ifnull 7
         6: .line 201
            aload 0 /* this */
            aload 7 /* directoryNode */
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.traverseForDirectories:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/resources/IResourceDelta;)V
        end local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode directoryNode
        end local 3 // org.eclipse.core.resources.IResourceDelta child
         7: .line 198
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 3
         9: .line 204
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.core.resources.IResourceChangeEvent org.eclipse.core.resources.IResourceDelta
      StackMap stack:
            return
        end local 2 // org.eclipse.core.resources.IResourceDelta delta
        end local 1 // org.eclipse.core.resources.IResourceChangeEvent event
        end local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            0   10     1          event  Lorg/eclipse/core/resources/IResourceChangeEvent;
            1   10     2          delta  Lorg/eclipse/core/resources/IResourceDelta;
            4    7     3          child  Lorg/eclipse/core/resources/IResourceDelta;
            5    7     7  directoryNode  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    MethodParameters:
       Name  Flags
      event  

  private void traverseForDirectories(org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode, org.eclipse.core.resources.IResourceDelta);
    descriptor: (Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/resources/IResourceDelta;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
        start local 1 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode directoryNode
        start local 2 // org.eclipse.core.resources.IResourceDelta matchedDelta
         0: .line 208
            aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.classFiles:Ljava/util/Map;
            ifnull 3
         1: .line 210
            aload 0 /* this */
            aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.classFiles:Ljava/util/Map;
            aload 2 /* matchedDelta */
            aload 2 /* matchedDelta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.segmentCount:()I
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.traverseForClassFiles:(Ljava/util/Map;Lorg/eclipse/core/resources/IResourceDelta;I)V
         2: .line 212
            goto 13
      StackMap locals:
      StackMap stack:
         3: aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            ifnull 13
         4: .line 213
            aload 2 /* matchedDelta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getAffectedChildren:()[Lorg/eclipse/core/resources/IResourceDelta;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode org.eclipse.core.resources.IResourceDelta top int int org.eclipse.core.resources.IResourceDelta[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* child */
        start local 3 // org.eclipse.core.resources.IResourceDelta child
         6: .line 214
            aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            aload 3 /* child */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
            astore 7 /* childDir */
        start local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode childDir
         7: .line 215
            aload 7 /* childDir */
            ifnull 11
         8: .line 216
            aload 3 /* child */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getKind:()I
            iconst_2
            if_icmpne 10
         9: .line 217
            aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            aload 3 /* child */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
            goto 11
        10: .line 219
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode org.eclipse.core.resources.IResourceDelta org.eclipse.core.resources.IResourceDelta int int org.eclipse.core.resources.IResourceDelta[] org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
      StackMap stack:
            aload 0 /* this */
            aload 7 /* childDir */
            aload 3 /* child */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.traverseForDirectories:(Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;Lorg/eclipse/core/resources/IResourceDelta;)V
        end local 7 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode childDir
        end local 3 // org.eclipse.core.resources.IResourceDelta child
        11: .line 213
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode org.eclipse.core.resources.IResourceDelta top int int org.eclipse.core.resources.IResourceDelta[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 5
        13: .line 223
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode org.eclipse.core.resources.IResourceDelta
      StackMap stack:
            aload 1 /* directoryNode */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.isEmpty:()Z
            ifeq 15
        14: .line 224
            aload 1 /* directoryNode */
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.parent:Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            getfield org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode.children:Ljava/util/Map;
            aload 2 /* matchedDelta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 225
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.eclipse.core.resources.IResourceDelta matchedDelta
        end local 1 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode directoryNode
        end local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            0   16     1  directoryNode  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
            0   16     2   matchedDelta  Lorg/eclipse/core/resources/IResourceDelta;
            6   11     3          child  Lorg/eclipse/core/resources/IResourceDelta;
            7   11     7       childDir  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker$DirectoryNode;
    MethodParameters:
               Name  Flags
      directoryNode  
      matchedDelta   

  private void traverseForClassFiles(java.util.Map<org.eclipse.core.runtime.IPath, org.eclipse.jdt.internal.core.ClassFile>, org.eclipse.core.resources.IResourceDelta, );
    descriptor: (Ljava/util/Map;Lorg/eclipse/core/resources/IResourceDelta;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
        start local 1 // java.util.Map classFiles
        start local 2 // org.eclipse.core.resources.IResourceDelta matchedDelta
        start local 3 // int baseDepth
         0: .line 229
            aload 2 /* matchedDelta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getAffectedChildren:()[Lorg/eclipse/core/resources/IResourceDelta;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker java.util.Map org.eclipse.core.resources.IResourceDelta int top int int org.eclipse.core.resources.IResourceDelta[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* delta */
        start local 4 // org.eclipse.core.resources.IResourceDelta delta
         2: .line 230
            aload 4 /* delta */
            invokeinterface org.eclipse.core.resources.IResourceDelta.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            iload 3 /* baseDepth */
            invokeinterface org.eclipse.core.runtime.IPath.removeFirstSegments:(I)Lorg/eclipse/core/runtime/IPath;
            astore 8 /* deltaRelativePath */
        start local 8 // org.eclipse.core.runtime.IPath deltaRelativePath
         3: .line 231
            aload 1 /* classFiles */
            aload 8 /* deltaRelativePath */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.ClassFile
            astore 9 /* classFile */
        start local 9 // org.eclipse.jdt.internal.core.ClassFile classFile
         4: .line 232
            aload 9 /* classFile */
            ifnull 10
         5: .line 235
            aload 9 /* classFile */
            invokevirtual org.eclipse.jdt.internal.core.ClassFile.closeAndRemoveFromJarTypeCache:()V
         6: .line 236
            goto 11
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker java.util.Map org.eclipse.core.resources.IResourceDelta int org.eclipse.core.resources.IResourceDelta int int org.eclipse.core.resources.IResourceDelta[] org.eclipse.core.runtime.IPath org.eclipse.jdt.internal.core.ClassFile
      StackMap stack: org.eclipse.jdt.core.JavaModelException
         7: astore 10 /* e */
        start local 10 // org.eclipse.jdt.core.JavaModelException e
         8: .line 237
            aload 10 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Failed to close ClassFile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* classFile */
            getfield org.eclipse.jdt.internal.core.ClassFile.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 10 // org.eclipse.jdt.core.JavaModelException e
         9: .line 239
            goto 11
        10: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classFiles */
            aload 4 /* delta */
            iload 3 /* baseDepth */
            invokevirtual org.eclipse.jdt.internal.core.ExternalAnnotationTracker.traverseForClassFiles:(Ljava/util/Map;Lorg/eclipse/core/resources/IResourceDelta;I)V
        end local 9 // org.eclipse.jdt.internal.core.ClassFile classFile
        end local 8 // org.eclipse.core.runtime.IPath deltaRelativePath
        end local 4 // org.eclipse.core.resources.IResourceDelta delta
        11: .line 229
      StackMap locals: org.eclipse.jdt.internal.core.ExternalAnnotationTracker java.util.Map org.eclipse.core.resources.IResourceDelta int top int int org.eclipse.core.resources.IResourceDelta[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 1
        13: .line 243
            return
        end local 3 // int baseDepth
        end local 2 // org.eclipse.core.resources.IResourceDelta matchedDelta
        end local 1 // java.util.Map classFiles
        end local 0 // org.eclipse.jdt.internal.core.ExternalAnnotationTracker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lorg/eclipse/jdt/internal/core/ExternalAnnotationTracker;
            0   14     1         classFiles  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/ClassFile;>;
            0   14     2       matchedDelta  Lorg/eclipse/core/resources/IResourceDelta;
            0   14     3          baseDepth  I
            2   11     4              delta  Lorg/eclipse/core/resources/IResourceDelta;
            3   11     8  deltaRelativePath  Lorg/eclipse/core/runtime/IPath;
            4   11     9          classFile  Lorg/eclipse/jdt/internal/core/ClassFile;
            8    9    10                  e  Lorg/eclipse/jdt/core/JavaModelException;
      Exception table:
        from    to  target  type
           5     6       7  Class org.eclipse.jdt.core.JavaModelException
    Signature: (Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/ClassFile;>;Lorg/eclipse/core/resources/IResourceDelta;I)V
    MethodParameters:
              Name  Flags
      classFiles    
      matchedDelta  
      baseDepth     
}
SourceFile: "ExternalAnnotationTracker.java"
NestMembers:
  org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode
InnerClasses:
  DirectoryNode = org.eclipse.jdt.internal.core.ExternalAnnotationTracker$DirectoryNode of org.eclipse.jdt.internal.core.ExternalAnnotationTracker