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, 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;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 508
            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 509
            aload 0 /* this */
            aload 2 /* archivePath */
            putfield com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.archivePath:Ljava/nio/file/Path;
         2: .line 510
            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 511
            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 512
            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 513
            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 514
            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 515
            goto 9
         8: .line 516
      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 518
      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 519
            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 520
            aload 3 /* root */
            ldc Ljava/nio/file/FileVisitOption;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            ldc 2147483647
        13: .line 521
            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 520
            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 519
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 533
            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=9, 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 545
            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 547
            aload 6 /* resolvedSubdirectory */
            ifnonnull 3
         2: .line 548
            return
         3: .line 550
      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 551
            getstatic java.nio.file.FileVisitOption.FOLLOW_LINKS:Ljava/nio/file/FileVisitOption;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            astore 8 /* opts */
        start local 8 // java.util.Set opts
         7: .line 552
            aload 6 /* resolvedSubdirectory */
            aload 8 /* opts */
            iload 7 /* maxDepth */
         8: .line 553
            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
         9: .line 552
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
        10: .line 574
            return
        end local 8 // java.util.Set opts
        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   11     0                  this  Lcom/sun/tools/javac/file/JavacFileManager$ArchiveContainer;
            0   11     1              userPath  Ljava/nio/file/Path;
            0   11     2          subdirectory  Lcom/sun/tools/javac/file/RelativePath$RelativeDirectory;
            0   11     3             fileKinds  Ljava/util/Set<Ljavax/tools/JavaFileObject$Kind;>;
            0   11     4               recurse  Z
            0   11     5            resultList  Lcom/sun/tools/javac/util/ListBuffer<Ljavax/tools/JavaFileObject;>;
            1   11     6  resolvedSubdirectory  Ljava/nio/file/Path;
            6   11     7              maxDepth  I
            7   11     8                  opts  Ljava/util/Set<Ljava/nio/file/FileVisitOption;>;
    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 577
            aload 1 /* fileName */
            ifnonnull 2
         1: .line 578
            iconst_1
            ireturn
         2: .line 580
      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 581
            aload 2 /* name */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 582
            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 584
      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 590
            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 591
            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 592
            aload 4 /* packagepath */
            ifnull 6
         3: .line 593
            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 594
            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 595
            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 598
      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 603
            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 604
            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

  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 503
            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