abstract class lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder
  super_class: java.lang.Object
{
  private final java.util.List<java.io.File> flatSourceDirs;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/io/File;>;

  private final java.util.List<java.io.File> nestedSourceDirs;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/io/File;>;

  final lombok.installer.eclipse.EclipseProductLocationProvider this$0;
    descriptor: Llombok/installer/eclipse/EclipseProductLocationProvider;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(java.util.List<java.io.File>, java.util.List<java.io.File>);
    descriptor: (Llombok/installer/eclipse/EclipseProductLocationProvider;Ljava/util/List;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
        start local 2 // java.util.List nestedSourceDirs
        start local 3 // java.util.List flatSourceDirs
         0: .line 279
            aload 0 /* this */
            aload 1
            putfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.this$0:Llombok/installer/eclipse/EclipseProductLocationProvider;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 280
            aload 0 /* this */
            aload 2 /* nestedSourceDirs */
            putfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.nestedSourceDirs:Ljava/util/List;
         2: .line 281
            aload 0 /* this */
            aload 3 /* flatSourceDirs */
            putfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.flatSourceDirs:Ljava/util/List;
         3: .line 282
            return
        end local 3 // java.util.List flatSourceDirs
        end local 2 // java.util.List nestedSourceDirs
        end local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Llombok/installer/eclipse/EclipseProductLocationProvider$DirectoryFinder;
            0    4     2  nestedSourceDirs  Ljava/util/List<Ljava/io/File;>;
            0    4     3    flatSourceDirs  Ljava/util/List<Ljava/io/File;>;
    Signature: (Ljava/util/List<Ljava/io/File;>;Ljava/util/List<Ljava/io/File;>;)V
    MethodParameters:
                  Name  Flags
      this$0            final
      nestedSourceDirs  
      flatSourceDirs    

  void findEclipse(java.util.List<lombok.installer.IdeLocation>, java.util.List<lombok.installer.CorruptedIdeLocationException>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
        start local 1 // java.util.List locations
        start local 2 // java.util.List problems
         0: .line 285
            aload 0 /* this */
            getfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.nestedSourceDirs:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 3 /* dir */
        start local 3 // java.io.File dir
         2: aload 0 /* this */
            aload 1 /* locations */
            aload 2 /* problems */
            aload 3 /* dir */
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.recurseDirectory:(Ljava/util/List;Ljava/util/List;Ljava/io/File;)V
        end local 3 // java.io.File dir
      StackMap locals:
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 286
            aload 0 /* this */
            getfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.flatSourceDirs:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 3 /* dir */
        start local 3 // java.io.File dir
         6: aload 0 /* this */
            aload 1 /* locations */
            aload 2 /* problems */
            aload 3 /* dir */
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.findEclipse:(Ljava/util/List;Ljava/util/List;Ljava/io/File;)V
        end local 3 // java.io.File dir
      StackMap locals:
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 287
            return
        end local 2 // java.util.List problems
        end local 1 // java.util.List locations
        end local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Llombok/installer/eclipse/EclipseProductLocationProvider$DirectoryFinder;
            0    9     1  locations  Ljava/util/List<Llombok/installer/IdeLocation;>;
            0    9     2   problems  Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;
            2    3     3        dir  Ljava/io/File;
            6    7     3        dir  Ljava/io/File;
    Signature: (Ljava/util/List<Llombok/installer/IdeLocation;>;Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;)V
    MethodParameters:
           Name  Flags
      locations  
      problems   

  abstract java.lang.String findEclipseOnPlatform(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/lang/String;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      dir   

  void recurseDirectory(java.util.List<lombok.installer.IdeLocation>, java.util.List<lombok.installer.CorruptedIdeLocationException>, java.io.File);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/io/File;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
        start local 1 // java.util.List locations
        start local 2 // java.util.List problems
        start local 3 // java.io.File dir
         0: .line 292
            aload 0 /* this */
            aload 1 /* locations */
            aload 2 /* problems */
            aload 3 /* dir */
            iconst_0
            iconst_0
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.recurseDirectory0:(Ljava/util/List;Ljava/util/List;Ljava/io/File;IZ)V
         1: .line 293
            return
        end local 3 // java.io.File dir
        end local 2 // java.util.List problems
        end local 1 // java.util.List locations
        end local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Llombok/installer/eclipse/EclipseProductLocationProvider$DirectoryFinder;
            0    2     1  locations  Ljava/util/List<Llombok/installer/IdeLocation;>;
            0    2     2   problems  Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;
            0    2     3        dir  Ljava/io/File;
    Signature: (Ljava/util/List<Llombok/installer/IdeLocation;>;Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;Ljava/io/File;)V
    MethodParameters:
           Name  Flags
      locations  
      problems   
      dir        

  private void recurseDirectory0(java.util.List<lombok.installer.IdeLocation>, java.util.List<lombok.installer.CorruptedIdeLocationException>, java.io.File, int, );
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/io/File;IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
        start local 1 // java.util.List locations
        start local 2 // java.util.List problems
        start local 3 // java.io.File f
        start local 4 // int loopCounter
        start local 5 // boolean nameFound
         0: .line 299
            aload 3 /* f */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 6 /* listFiles */
        start local 6 // java.io.File[] listFiles
         1: .line 300
            aload 6 /* listFiles */
            ifnonnull 2
            return
         2: .line 302
      StackMap locals: java.io.File[]
      StackMap stack:
            aload 6 /* listFiles */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 11
      StackMap locals: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder java.util.List java.util.List java.io.File int int java.io.File[] top int int java.io.File[]
      StackMap stack:
         3: aload 10
            iload 8
            aaload
            astore 7 /* dir */
        start local 7 // java.io.File dir
         4: .line 303
            aload 7 /* dir */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 5
            goto 10
         5: .line 305
      StackMap locals: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder java.util.List java.util.List java.io.File int int java.io.File[] java.io.File int int java.io.File[]
      StackMap stack:
            iload 5 /* nameFound */
            ifne 6
            aload 7 /* dir */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 0 /* this */
            getfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.this$0:Llombok/installer/eclipse/EclipseProductLocationProvider;
            getfield lombok.installer.eclipse.EclipseProductLocationProvider.descriptor:Llombok/installer/eclipse/EclipseProductDescriptor;
            invokeinterface lombok.installer.eclipse.EclipseProductDescriptor.getDirectoryName:()Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 10
         6: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* locations */
            aload 2 /* problems */
            aload 7 /* dir */
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.findEclipse:(Ljava/util/List;Ljava/util/List;Ljava/io/File;)V
         7: .line 307
            iload 4 /* loopCounter */
            bipush 50
            if_icmpge 10
            aload 0 /* this */
            aload 1 /* locations */
            aload 2 /* problems */
            aload 7 /* dir */
            iload 4 /* loopCounter */
            iconst_1
            iadd
            iconst_1
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.recurseDirectory0:(Ljava/util/List;Ljava/util/List;Ljava/io/File;IZ)V
         8: .line 309
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: pop
        end local 7 // java.io.File dir
        10: .line 302
      StackMap locals: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder java.util.List java.util.List java.io.File int int java.io.File[] top int int java.io.File[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        11: iload 8
            iload 9
            if_icmplt 3
        12: .line 311
            return
        end local 6 // java.io.File[] listFiles
        end local 5 // boolean nameFound
        end local 4 // int loopCounter
        end local 3 // java.io.File f
        end local 2 // java.util.List problems
        end local 1 // java.util.List locations
        end local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Llombok/installer/eclipse/EclipseProductLocationProvider$DirectoryFinder;
            0   13     1    locations  Ljava/util/List<Llombok/installer/IdeLocation;>;
            0   13     2     problems  Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;
            0   13     3            f  Ljava/io/File;
            0   13     4  loopCounter  I
            0   13     5    nameFound  Z
            1   13     6    listFiles  [Ljava/io/File;
            4   10     7          dir  Ljava/io/File;
      Exception table:
        from    to  target  type
           5     8       9  Class java.lang.Exception
    Signature: (Ljava/util/List<Llombok/installer/IdeLocation;>;Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;Ljava/io/File;IZ)V
    MethodParameters:
             Name  Flags
      locations    
      problems     
      f            
      loopCounter  
      nameFound    

  private void findEclipse(java.util.List<lombok.installer.IdeLocation>, java.util.List<lombok.installer.CorruptedIdeLocationException>, java.io.File);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
        start local 1 // java.util.List locations
        start local 2 // java.util.List problems
        start local 3 // java.io.File dir
         0: .line 314
            aload 0 /* this */
            aload 3 /* dir */
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.findEclipseOnPlatform:(Ljava/io/File;)Ljava/lang/String;
            astore 4 /* eclipseLocation */
        start local 4 // java.lang.String eclipseLocation
         1: .line 315
            aload 4 /* eclipseLocation */
            ifnull 7
         2: .line 317
            aload 0 /* this */
            getfield lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder.this$0:Llombok/installer/eclipse/EclipseProductLocationProvider;
            aload 4 /* eclipseLocation */
            invokevirtual lombok.installer.eclipse.EclipseProductLocationProvider.create:(Ljava/lang/String;)Llombok/installer/IdeLocation;
            astore 5 /* newLocation */
        start local 5 // lombok.installer.IdeLocation newLocation
         3: .line 318
            aload 5 /* newLocation */
            ifnull 7
            aload 1 /* locations */
            aload 5 /* newLocation */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // lombok.installer.IdeLocation newLocation
         4: .line 319
            goto 7
      StackMap locals: lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder java.util.List java.util.List java.io.File java.lang.String
      StackMap stack: lombok.installer.CorruptedIdeLocationException
         5: astore 5 /* e */
        start local 5 // lombok.installer.CorruptedIdeLocationException e
         6: .line 320
            aload 2 /* problems */
            aload 5 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // lombok.installer.CorruptedIdeLocationException e
         7: .line 323
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String eclipseLocation
        end local 3 // java.io.File dir
        end local 2 // java.util.List problems
        end local 1 // java.util.List locations
        end local 0 // lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Llombok/installer/eclipse/EclipseProductLocationProvider$DirectoryFinder;
            0    8     1        locations  Ljava/util/List<Llombok/installer/IdeLocation;>;
            0    8     2         problems  Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;
            0    8     3              dir  Ljava/io/File;
            1    8     4  eclipseLocation  Ljava/lang/String;
            3    4     5      newLocation  Llombok/installer/IdeLocation;
            6    7     5                e  Llombok/installer/CorruptedIdeLocationException;
      Exception table:
        from    to  target  type
           2     4       5  Class lombok.installer.CorruptedIdeLocationException
    Signature: (Ljava/util/List<Llombok/installer/IdeLocation;>;Ljava/util/List<Llombok/installer/CorruptedIdeLocationException;>;Ljava/io/File;)V
    MethodParameters:
           Name  Flags
      locations  
      problems   
      dir        
}
SourceFile: "EclipseProductLocationProvider.java"
NestHost: lombok.installer.eclipse.EclipseProductLocationProvider
InnerClasses:
  private abstract DirectoryFinder = lombok.installer.eclipse.EclipseProductLocationProvider$DirectoryFinder of lombok.installer.eclipse.EclipseProductLocationProvider