public class javax.swing.plaf.basic.BasicDirectoryModel extends javax.swing.AbstractListModel<java.lang.Object> implements java.beans.PropertyChangeListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.plaf.basic.BasicDirectoryModel
  super_class: javax.swing.AbstractListModel
{
  private final javax.swing.JFileChooser filechooser;
    descriptor: Ljavax/swing/JFileChooser;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader filesLoader;
    descriptor: Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Vector<java.io.File> files;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Ljava/io/File;>;

  private java.util.Vector<java.io.File> directories;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Ljava/io/File;>;

  private final java.util.concurrent.atomic.AtomicInteger fetchID;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.beans.PropertyChangeSupport changeSupport;
    descriptor: Ljava/beans/PropertyChangeSupport;
    flags: (0x0002) ACC_PRIVATE

  private boolean busy;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(javax.swing.JFileChooser);
    descriptor: (Ljavax/swing/JFileChooser;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // javax.swing.JFileChooser filechooser
         0: .line 70
            aload 0 /* this */
            invokespecial javax.swing.AbstractListModel.<init>:()V
         1: .line 55
            aload 0 /* this */
            new java.util.Vector
            dup
            bipush 50
            invokespecial java.util.Vector.<init>:(I)V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
         2: .line 56
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
         3: .line 57
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
         4: .line 58
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
         5: .line 59
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.fetchID:Ljava/util/concurrent/atomic/AtomicInteger;
         6: .line 63
            aload 0 /* this */
            iconst_0
            putfield javax.swing.plaf.basic.BasicDirectoryModel.busy:Z
         7: .line 71
            aload 0 /* this */
            aload 1 /* filechooser */
            putfield javax.swing.plaf.basic.BasicDirectoryModel.filechooser:Ljavax/swing/JFileChooser;
         8: .line 72
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.validateFileCache:()V
         9: .line 73
            return
        end local 1 // javax.swing.JFileChooser filechooser
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0   10     1  filechooser  Ljavax/swing/JFileChooser;
    MethodParameters:
             Name  Flags
      filechooser  

  public void propertyChange(java.beans.PropertyChangeEvent);
    descriptor: (Ljava/beans/PropertyChangeEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.beans.PropertyChangeEvent e
         0: .line 76
            aload 1 /* e */
            invokevirtual java.beans.PropertyChangeEvent.getPropertyName:()Ljava/lang/String;
            astore 2 /* prop */
        start local 2 // java.lang.String prop
         1: .line 77
            aload 2 /* prop */
            ldc "directoryChanged"
            if_acmpeq 6
         2: .line 78
            aload 2 /* prop */
            ldc "fileViewChanged"
            if_acmpeq 6
         3: .line 79
            aload 2 /* prop */
            ldc "fileFilterChanged"
            if_acmpeq 6
         4: .line 80
            aload 2 /* prop */
            ldc "FileHidingChanged"
            if_acmpeq 6
         5: .line 81
            aload 2 /* prop */
            ldc "fileSelectionChanged"
            if_acmpne 8
         6: .line 82
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.validateFileCache:()V
         7: .line 83
            goto 18
      StackMap locals:
      StackMap stack:
         8: ldc "UI"
            aload 2 /* prop */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
         9: .line 84
            aload 1 /* e */
            invokevirtual java.beans.PropertyChangeEvent.getOldValue:()Ljava/lang/Object;
            astore 3 /* old */
        start local 3 // java.lang.Object old
        10: .line 85
            aload 3 /* old */
            instanceof javax.swing.plaf.basic.BasicFileChooserUI
            ifeq 18
        11: .line 86
            aload 3 /* old */
            checkcast javax.swing.plaf.basic.BasicFileChooserUI
            astore 4 /* ui */
        start local 4 // javax.swing.plaf.basic.BasicFileChooserUI ui
        12: .line 87
            aload 4 /* ui */
            invokevirtual javax.swing.plaf.basic.BasicFileChooserUI.getModel:()Ljavax/swing/plaf/basic/BasicDirectoryModel;
            astore 5 /* model */
        start local 5 // javax.swing.plaf.basic.BasicDirectoryModel model
        13: .line 88
            aload 5 /* model */
            ifnull 18
        14: .line 89
            aload 5 /* model */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.invalidateFileCache:()V
        end local 5 // javax.swing.plaf.basic.BasicDirectoryModel model
        end local 4 // javax.swing.plaf.basic.BasicFileChooserUI ui
        end local 3 // java.lang.Object old
        15: .line 92
            goto 18
      StackMap locals:
      StackMap stack:
        16: ldc "JFileChooserDialogIsClosingProperty"
            aload 2 /* prop */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 93
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.invalidateFileCache:()V
        18: .line 95
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String prop
        end local 1 // java.beans.PropertyChangeEvent e
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0   19     1      e  Ljava/beans/PropertyChangeEvent;
            1   19     2   prop  Ljava/lang/String;
           10   15     3    old  Ljava/lang/Object;
           12   15     4     ui  Ljavax/swing/plaf/basic/BasicFileChooserUI;
           13   15     5  model  Ljavax/swing/plaf/basic/BasicDirectoryModel;
    MethodParameters:
      Name  Flags
      e     

  public void invalidateFileCache();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 101
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            ifnull 4
         1: .line 102
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            getfield javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader.loadThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         2: .line 103
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader.cancelRunnables:()V
         3: .line 104
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
         4: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;

  public java.util.Vector<java.io.File> getDirectories();
    descriptor: ()Ljava/util/Vector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 114
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            dup
            astore 1
            monitorenter
         1: .line 115
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
            ifnull 4
         2: .line 116
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
            aload 1
            monitorexit
         3: areturn
         4: .line 118
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.getFiles:()Ljava/util/Vector;
            pop
         5: .line 119
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
            aload 1
            monitorexit
         6: areturn
         7: .line 114
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
    Signature: ()Ljava/util/Vector<Ljava/io/File;>;

  public java.util.Vector<java.io.File> getFiles();
    descriptor: ()Ljava/util/Vector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 129
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            dup
            astore 1
            monitorenter
         1: .line 130
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
            ifnull 4
         2: .line 131
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
            aload 1
            monitorexit
         3: areturn
         4: .line 133
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
         5: .line 134
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
         6: .line 135
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filechooser:Ljavax/swing/JFileChooser;
            invokevirtual javax.swing.JFileChooser.getFileSystemView:()Ljavax/swing/filechooser/FileSystemView;
         7: .line 136
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filechooser:Ljavax/swing/JFileChooser;
            invokevirtual javax.swing.JFileChooser.getCurrentDirectory:()Ljava/io/File;
            ldc ".."
         8: .line 135
            invokevirtual javax.swing.filechooser.FileSystemView.createFileObject:(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         9: .line 139
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        10: goto 17
        11: .line 140
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            iload 2 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            astore 3 /* f */
        start local 3 // java.io.File f
        12: .line 141
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filechooser:Ljavax/swing/JFileChooser;
            aload 3 /* f */
            invokevirtual javax.swing.JFileChooser.isTraversable:(Ljava/io/File;)Z
            ifeq 15
        13: .line 142
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.directories:Ljava/util/Vector;
            aload 3 /* f */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        14: .line 143
            goto 16
        15: .line 144
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
            aload 3 /* f */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.io.File f
        16: .line 139
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.getSize:()I
            if_icmplt 11
        end local 2 // int i
        18: .line 147
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.files:Ljava/util/Vector;
            aload 1
            monitorexit
        19: areturn
        20: .line 129
      StackMap locals: javax.swing.plaf.basic.BasicDirectoryModel java.util.Vector
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        21: athrow
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
           10   18     2     i  I
           12   16     3     f  Ljava/io/File;
      Exception table:
        from    to  target  type
           1     3      20  any
           4    19      20  any
          20    21      20  any
    Signature: ()Ljava/util/Vector<Ljava/io/File;>;

  public void validateFileCache();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 155
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filechooser:Ljavax/swing/JFileChooser;
            invokevirtual javax.swing.JFileChooser.getCurrentDirectory:()Ljava/io/File;
            astore 1 /* currentDirectory */
        start local 1 // java.io.File currentDirectory
         1: .line 156
            aload 1 /* currentDirectory */
            ifnonnull 3
         2: .line 157
            return
         3: .line 159
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            ifnull 6
         4: .line 160
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            getfield javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader.loadThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         5: .line 161
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader.cancelRunnables:()V
         6: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fetchID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            istore 2 /* fid */
        start local 2 // int fid
         7: .line 165
            aload 0 /* this */
            iconst_1
            iload 2 /* fid */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.setBusy:(ZI)V
         8: .line 166
            aload 0 /* this */
            new javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader
            dup
            aload 0 /* this */
            aload 1 /* currentDirectory */
            iload 2 /* fid */
            invokespecial javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader.<init>:(Ljavax/swing/plaf/basic/BasicDirectoryModel;Ljava/io/File;I)V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.filesLoader:Ljavax/swing/plaf/basic/BasicDirectoryModel$FilesLoader;
         9: .line 167
            return
        end local 2 // int fid
        end local 1 // java.io.File currentDirectory
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            1   10     1  currentDirectory  Ljava/io/File;
            7   10     2               fid  I

  public boolean renameFile(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.io.File oldFile
        start local 2 // java.io.File newFile
         0: .line 181
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            dup
            astore 3
            monitorenter
         1: .line 182
            aload 1 /* oldFile */
            aload 2 /* newFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifeq 5
         2: .line 183
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.validateFileCache:()V
         3: .line 184
            aload 3
            monitorexit
         4: iconst_1
            ireturn
         5: .line 186
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 3
            monitorexit
         6: iconst_0
            ireturn
         7: .line 181
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         8: athrow
        end local 2 // java.io.File newFile
        end local 1 // java.io.File oldFile
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    9     1  oldFile  Ljava/io/File;
            0    9     2  newFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    MethodParameters:
         Name  Flags
      oldFile  
      newFile  

  public void fireContentsChanged();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 194
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.getSize:()I
            iconst_1
            isub
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.fireContentsChanged:(Ljava/lang/Object;II)V
         1: .line 195
            return
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;

  public int getSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 198
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ireturn
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;

  public boolean contains(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.lang.Object o
         0: .line 209
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            aload 1 /* o */
            invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    1     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public int indexOf(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.lang.Object o
         0: .line 219
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            aload 1 /* o */
            invokevirtual java.util.Vector.indexOf:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    1     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public java.lang.Object getElementAt(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // int index
         0: .line 223
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fileCache:Ljava/util/Vector;
            iload 1 /* index */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            areturn
        end local 1 // int index
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public void intervalAdded(javax.swing.event.ListDataEvent);
    descriptor: (Ljavax/swing/event/ListDataEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // javax.swing.event.ListDataEvent e
         0: .line 231
            return
        end local 1 // javax.swing.event.ListDataEvent e
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    1     1     e  Ljavax/swing/event/ListDataEvent;
    MethodParameters:
      Name  Flags
      e     

  public void intervalRemoved(javax.swing.event.ListDataEvent);
    descriptor: (Ljavax/swing/event/ListDataEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // javax.swing.event.ListDataEvent e
         0: .line 238
            return
        end local 1 // javax.swing.event.ListDataEvent e
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    1     1     e  Ljavax/swing/event/ListDataEvent;
    MethodParameters:
      Name  Flags
      e     

  protected void sort(java.util.Vector<? extends java.io.File>);
    descriptor: (Ljava/util/Vector;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.util.Vector v
         0: .line 246
            aload 1 /* v */
            invokestatic sun.awt.shell.ShellFolder.sort:(Ljava/util/List;)V
         1: .line 247
            return
        end local 1 // java.util.Vector v
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    2     1     v  Ljava/util/Vector<+Ljava/io/File;>;
    Signature: (Ljava/util/Vector<+Ljava/io/File;>;)V
    MethodParameters:
      Name  Flags
      v     

  protected boolean lt(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.io.File a
        start local 2 // java.io.File b
         0: .line 257
            aload 1 /* a */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 2 /* b */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 3 /* diff */
        start local 3 // int diff
         1: .line 258
            iload 3 /* diff */
            ifeq 4
         2: .line 259
            iload 3 /* diff */
            ifge 3
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aload 2 /* b */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ifge 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 3 // int diff
        end local 2 // java.io.File b
        end local 1 // java.io.File a
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    6     1     a  Ljava/io/File;
            0    6     2     b  Ljava/io/File;
            1    6     3  diff  I
    MethodParameters:
      Name  Flags
      a     
      b     

  public void addPropertyChangeListener(java.beans.PropertyChangeListener);
    descriptor: (Ljava/beans/PropertyChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.beans.PropertyChangeListener listener
         0: .line 421
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            ifnonnull 2
         1: .line 422
            aload 0 /* this */
            new java.beans.PropertyChangeSupport
            dup
            aload 0 /* this */
            invokespecial java.beans.PropertyChangeSupport.<init>:(Ljava/lang/Object;)V
            putfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
         2: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            aload 1 /* listener */
            invokevirtual java.beans.PropertyChangeSupport.addPropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
         3: .line 425
            return
        end local 1 // java.beans.PropertyChangeListener listener
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    4     1  listener  Ljava/beans/PropertyChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removePropertyChangeListener(java.beans.PropertyChangeListener);
    descriptor: (Ljava/beans/PropertyChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.beans.PropertyChangeListener listener
         0: .line 440
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            ifnull 2
         1: .line 441
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            aload 1 /* listener */
            invokevirtual java.beans.PropertyChangeSupport.removePropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
         2: .line 443
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.beans.PropertyChangeListener listener
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    3     1  listener  Ljava/beans/PropertyChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
    descriptor: ()[Ljava/beans/PropertyChangeListener;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
         0: .line 460
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            ifnonnull 2
         1: .line 461
            iconst_0
            anewarray java.beans.PropertyChangeListener
            areturn
         2: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            invokevirtual java.beans.PropertyChangeSupport.getPropertyChangeListeners:()[Ljava/beans/PropertyChangeListener;
            areturn
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/plaf/basic/BasicDirectoryModel;

  protected void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object oldValue
        start local 3 // java.lang.Object newValue
         0: .line 480
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            ifnull 4
         1: .line 481
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            aload 1 /* propertyName */
         2: .line 482
            aload 2 /* oldValue */
            aload 3 /* newValue */
         3: .line 481
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 484
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object newValue
        end local 2 // java.lang.Object oldValue
        end local 1 // java.lang.String propertyName
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    5     1  propertyName  Ljava/lang/String;
            0    5     2      oldValue  Ljava/lang/Object;
            0    5     3      newValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      propertyName  
      oldValue      
      newValue      

  private synchronized void setBusy(boolean, int);
    descriptor: (ZI)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
        start local 1 // boolean busy
        start local 2 // int fid
         0: .line 493
            iload 2 /* fid */
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.fetchID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            if_icmpne 5
         1: .line 494
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.busy:Z
            istore 3 /* oldValue */
        start local 3 // boolean oldValue
         2: .line 495
            aload 0 /* this */
            iload 1 /* busy */
            putfield javax.swing.plaf.basic.BasicDirectoryModel.busy:Z
         3: .line 497
            aload 0 /* this */
            getfield javax.swing.plaf.basic.BasicDirectoryModel.changeSupport:Ljava/beans/PropertyChangeSupport;
            ifnull 5
            iload 1 /* busy */
            iload 3 /* oldValue */
            if_icmpeq 5
         4: .line 498
            new javax.swing.plaf.basic.BasicDirectoryModel$1
            dup
            aload 0 /* this */
            iload 1 /* busy */
            invokespecial javax.swing.plaf.basic.BasicDirectoryModel$1.<init>:(Ljavax/swing/plaf/basic/BasicDirectoryModel;Z)V
            invokestatic javax.swing.SwingUtilities.invokeLater:(Ljava/lang/Runnable;)V
        end local 3 // boolean oldValue
         5: .line 505
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int fid
        end local 1 // boolean busy
        end local 0 // javax.swing.plaf.basic.BasicDirectoryModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljavax/swing/plaf/basic/BasicDirectoryModel;
            0    6     1      busy  Z
            0    6     2       fid  I
            2    5     3  oldValue  Z
    MethodParameters:
      Name  Flags
      busy  final
      fid   

  static void access$0(javax.swing.plaf.basic.BasicDirectoryModel, java.lang.Object, int, int);
    descriptor: (Ljavax/swing/plaf/basic/BasicDirectoryModel;Ljava/lang/Object;II)V
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            iload 2
            iload 3
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.fireIntervalRemoved:(Ljava/lang/Object;II)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void access$1(javax.swing.plaf.basic.BasicDirectoryModel, java.lang.Object, int, int);
    descriptor: (Ljavax/swing/plaf/basic/BasicDirectoryModel;Ljava/lang/Object;II)V
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            iload 2
            iload 3
            invokevirtual javax.swing.plaf.basic.BasicDirectoryModel.fireIntervalAdded:(Ljava/lang/Object;II)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljavax/swing/AbstractListModel<Ljava/lang/Object;>;Ljava/beans/PropertyChangeListener;
SourceFile: "BasicDirectoryModel.java"
NestMembers:
  javax.swing.plaf.basic.BasicDirectoryModel$1  javax.swing.plaf.basic.BasicDirectoryModel$DoChangeContents  javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader  javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader$1
InnerClasses:
  javax.swing.plaf.basic.BasicDirectoryModel$1
  private final DoChangeContents = javax.swing.plaf.basic.BasicDirectoryModel$DoChangeContents of javax.swing.plaf.basic.BasicDirectoryModel
  private final FilesLoader = javax.swing.plaf.basic.BasicDirectoryModel$FilesLoader of javax.swing.plaf.basic.BasicDirectoryModel