final class com.sun.tools.javac.file.JavacFileManager$ArchiveContainer implements com.sun.tools.javac.file.JavacFileManager$Container
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.tools.javac.file.JavacFileManager$ArchiveContainer
  super_class: java.lang.Object
{
  private final java.nio.file.Path archivePath;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.file.FileSystem fileSystem;
    descriptor: Ljava/nio/file/FileSystem;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<com.sun.tools.javac.file.RelativePath$RelativeDirectory, java.nio.file.Path> packages;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;Ljava/nio/file/Path;>;

  final com.sun.tools.javac.file.JavacFileManager this$0;
    descriptor: Lcom/sun/tools/javac/file/JavacFileManager;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(com.sun.tools.javac.file.JavacFileManager, java.nio.file.Path);
    descriptor: (Lcom/sun/tools/javac/file/JavacFileManager;Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
        start local 2 // java.nio.file.Path archivePath
         0: .line 561
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.this$0:Lcom/sun/tools/javac/file/JavacFileManager;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 562
            aload 0 /* this */
            aload 2 /* archivePath */
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.archivePath:Ljava/nio/file/Path;
         2: .line 563
            aload 1
            getfield com.sun.tools.javac.file.JavacFileManager.multiReleaseValue:Ljava/lang/String;
            ifnull 8
            aload 2 /* archivePath */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         3: .line 564
            ldc "multi-release"
            aload 1
            getfield com.sun.tools.javac.file.JavacFileManager.multiReleaseValue:Ljava/lang/String;
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            astore 3 /* env */
        start local 3 // java.util.Map env
         4: .line 565
            aload 1
            getfield com.sun.tools.javac.file.JavacFileManager.fsInfo:Lcom/sun/tools/javac/file/FSInfo;
            invokevirtual com.sun.tools.javac.file.FSInfo.getJarFSProvider:()Ljava/nio/file/spi/FileSystemProvider;
            astore 4 /* jarFSProvider */
        start local 4 // java.nio.file.spi.FileSystemProvider jarFSProvider
         5: .line 566
            aload 4 /* jarFSProvider */
            ldc "should have been caught before!"
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 567
            aload 0 /* this */
            aload 4 /* jarFSProvider */
            aload 2 /* archivePath */
            aload 3 /* env */
            invokevirtual java.nio.file.spi.FileSystemProvider.newFileSystem:(Ljava/nio/file/Path;Ljava/util/Map;)Ljava/nio/file/FileSystem;
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.fileSystem:Ljava/nio/file/FileSystem;
        end local 4 // java.nio.file.spi.FileSystemProvider jarFSProvider
        end local 3 // java.util.Map env
         7: .line 568
            goto 9
         8: .line 569
      StackMap locals: com.sun.tools.javac.file.JavacFileManager$ArchiveContainer com.sun.tools.javac.file.JavacFileManager java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            aload 2 /* archivePath */
            aconst_null
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/nio/file/Path;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.fileSystem:Ljava/nio/file/FileSystem;
         9: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.packages:Ljava/util/Map;
        10: .line 572
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.fileSystem:Ljava/nio/file/FileSystem;
            invokevirtual java.nio.file.FileSystem.getRootDirectories:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: com.sun.tools.javac.file.JavacFileManager$ArchiveContainer com.sun.tools.javac.file.JavacFileManager java.nio.file.Path top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 3 /* root */
        start local 3 // java.nio.file.Path root
        12: .line 573
            aload 3 /* root */
            getstatic com.sun.tools.javac.file.JavacFileManager.NO_FILE_VISIT_OPTIONS:Ljava/util/Set;
            ldc 2147483647
        13: .line 574
            new com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$1
            dup
            aload 0 /* this */
            aload 3 /* root */
            invokespecial com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$1.<init>:(Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;Ljava/nio/file/Path;)V
        14: .line 573
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
        end local 3 // java.nio.file.Path root
        15: .line 572
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 586
            return
        end local 2 // java.nio.file.Path archivePath
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
            0   17     2    archivePath  Ljava/nio/file/Path;
            4    7     3            env  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            5    7     4  jarFSProvider  Ljava/nio/file/spi/FileSystemProvider;
           12   15     3           root  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException, java.nio.file.ProviderNotFoundException, java.lang.SecurityException
    MethodParameters:
             Name  Flags
      this$0       final
      archivePath  

  public void list(java.nio.file.Path, com.sun.tools.javac.file.RelativePath$RelativeDirectory, java.util.Set<javax.tools.JavaFileObject$Kind>, boolean, com.sun.tools.javac.util.ListBuffer<javax.tools.JavaFileObject>);
    descriptor: (Ljava/nio/file/Path;Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;Ljava/util/Set;ZLcom/sun/tools/javac/util/ListBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
        start local 1 // java.nio.file.Path userPath
        start local 2 // com.sun.tools.javac.file.RelativePath$RelativeDirectory subdirectory
        start local 3 // java.util.Set fileKinds
        start local 4 // boolean recurse
        start local 5 // com.sun.tools.javac.util.ListBuffer resultList
         0: .line 598
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.packages:Ljava/util/Map;
            aload 2 /* subdirectory */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 6 /* resolvedSubdirectory */
        start local 6 // java.nio.file.Path resolvedSubdirectory
         1: .line 600
            aload 6 /* resolvedSubdirectory */
            ifnonnull 3
         2: .line 601
            return
         3: .line 603
      StackMap locals: java.nio.file.Path
      StackMap stack:
            iload 4 /* recurse */
            ifeq 4
            ldc 2147483647
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 7 /* maxDepth */
        start local 7 // int maxDepth
         6: .line 604
            aload 6 /* resolvedSubdirectory */
            getstatic com.sun.tools.javac.file.JavacFileManager.FOLLOW_LINKS_OPTIONS:Ljava/util/Set;
            iload 7 /* maxDepth */
         7: .line 605
            new com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$2
            dup
            aload 0 /* this */
            aload 3 /* fileKinds */
            aload 5 /* resultList */
            invokespecial com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$2.<init>:(Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;Ljava/util/Set;Lcom/sun/tools/javac/util/ListBuffer;)V
         8: .line 604
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
         9: .line 626
            return
        end local 7 // int maxDepth
        end local 6 // java.nio.file.Path resolvedSubdirectory
        end local 5 // com.sun.tools.javac.util.ListBuffer resultList
        end local 4 // boolean recurse
        end local 3 // java.util.Set fileKinds
        end local 2 // com.sun.tools.javac.file.RelativePath$RelativeDirectory subdirectory
        end local 1 // java.nio.file.Path userPath
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
            0   10     1              userPath  Ljava/nio/file/Path;
            0   10     2          subdirectory  Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;
            0   10     3             fileKinds  Ljava/util/Set<Ljavax/tools/JavaFileObject$Kind;>;
            0   10     4               recurse  Z
            0   10     5            resultList  Lcom/sun/tools/javac/util/ListBuffer<Ljavax/tools/JavaFileObject;>;
            1   10     6  resolvedSubdirectory  Ljava/nio/file/Path;
            6   10     7              maxDepth  I
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;Ljava/util/Set<Ljavax/tools/JavaFileObject$Kind;>;ZLcom/sun/tools/javac/util/ListBuffer<Ljavax/tools/JavaFileObject;>;)V
    MethodParameters:
              Name  Flags
      userPath      
      subdirectory  
      fileKinds     
      recurse       
      resultList    

  private boolean isValid(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
        start local 1 // java.nio.file.Path fileName
         0: .line 629
            aload 1 /* fileName */
            ifnonnull 2
         1: .line 630
            iconst_1
            ireturn
         2: .line 632
      StackMap locals:
      StackMap stack:
            aload 1 /* fileName */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         3: .line 633
            aload 2 /* name */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 634
            aload 2 /* name */
            iconst_0
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
         5: .line 636
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            invokestatic javax.lang.model.SourceVersion.isIdentifier:(Ljava/lang/CharSequence;)Z
            ireturn
        end local 2 // java.lang.String name
        end local 1 // java.nio.file.Path fileName
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
            0    6     1  fileName  Ljava/nio/file/Path;
            3    6     2      name  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fileName  

  public javax.tools.JavaFileObject getFileObject(java.nio.file.Path, com.sun.tools.javac.file.RelativePath$RelativeFile);
    descriptor: (Ljava/nio/file/Path;Lcom/sun/tools/javac/file/RelativePath$RelativeFile;)Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
        start local 1 // java.nio.file.Path userPath
        start local 2 // com.sun.tools.javac.file.RelativePath$RelativeFile name
         0: .line 642
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.file.RelativePath$RelativeFile.dirname:()Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;
            astore 3 /* root */
        start local 3 // com.sun.tools.javac.file.RelativePath$RelativeDirectory root
         1: .line 643
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.packages:Ljava/util/Map;
            aload 3 /* root */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 4 /* packagepath */
        start local 4 // java.nio.file.Path packagepath
         2: .line 644
            aload 4 /* packagepath */
            ifnull 6
         3: .line 645
            aload 4 /* packagepath */
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.file.RelativePath$RelativeFile.basename:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* relpath */
        start local 5 // java.nio.file.Path relpath
         4: .line 646
            aload 5 /* relpath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 6
         5: .line 647
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.this$0:Lcom/sun/tools/javac/file/JavacFileManager;
            aload 5 /* relpath */
            aload 1 /* userPath */
            invokestatic com.sun.tools.javac.file.PathFileObject.forJarPath:(Lcom/sun/tools/javac/file/BaseFileManager;Ljava/nio/file/Path;Ljava/nio/file/Path;)Lcom/sun/tools/javac/file/PathFileObject;
            areturn
        end local 5 // java.nio.file.Path relpath
         6: .line 650
      StackMap locals: com.sun.tools.javac.file.RelativePath$RelativeDirectory java.nio.file.Path
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.nio.file.Path packagepath
        end local 3 // com.sun.tools.javac.file.RelativePath$RelativeDirectory root
        end local 2 // com.sun.tools.javac.file.RelativePath$RelativeFile name
        end local 1 // java.nio.file.Path userPath
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
            0    7     1     userPath  Ljava/nio/file/Path;
            0    7     2         name  Lcom/sun/tools/javac/file/RelativePath$RelativeFile;
            1    7     3         root  Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;
            2    7     4  packagepath  Ljava/nio/file/Path;
            4    6     5      relpath  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      userPath  
      name      

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
         0: .line 655
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.fileSystem:Ljava/nio/file/FileSystem;
            invokevirtual java.nio.file.FileSystem.close:()V
         1: .line 656
            return
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
    Exceptions:
      throws java.io.IOException

  public boolean maintainsDirectoryIndex();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
         0: .line 660
            iconst_1
            ireturn
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;

  public java.lang.Iterable<com.sun.tools.javac.file.RelativePath$RelativeDirectory> indexedDirectories();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
         0: .line 665
            aload 0 /* this */
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.packages:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            areturn
        end local 0 // com.sun.tools.javac.file.JavacFileManager$ArchiveContainer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
    Signature: ()Ljava/lang/Iterable<Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;>;

  static com.sun.tools.javac.file.JavacFileManager access$0(com.sun.tools.javac.file.JavacFileManager$ArchiveContainer);
    descriptor: (Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;)Lcom/sun/tools/javac/file/JavacFileManager;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 556
            aload 0
            getfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.this$0:Lcom/sun/tools/javac/file/JavacFileManager;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JavacFileManager.java"
NestHost: com.sun.tools.javac.file.JavacFileManager
InnerClasses:
  private final ArchiveContainer = com.sun.tools.javac.file.JavacFileManager$ArchiveContainer of com.sun.tools.javac.file.JavacFileManager
  com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$1
  com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$2
  private abstract Container = com.sun.tools.javac.file.JavacFileManager$Container of com.sun.tools.javac.file.JavacFileManager
  public RelativeDirectory = com.sun.tools.javac.file.RelativePath$RelativeDirectory of com.sun.tools.javac.file.RelativePath
  public RelativeFile = com.sun.tools.javac.file.RelativePath$RelativeFile of com.sun.tools.javac.file.RelativePath
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject