class com.sun.tools.javac.launcher.Main$MemoryFileManager extends javax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.launcher.Main$MemoryFileManager
  super_class: javax.tools.ForwardingJavaFileManager
{
  private final java.util.Map<java.lang.String, byte[]> map;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;[B>;

  void <init>(java.util.Map<java.lang.String, byte[]>, javax.tools.JavaFileManager);
    descriptor: (Ljava/util/Map;Ljavax/tools/JavaFileManager;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
        start local 1 // java.util.Map map
        start local 2 // javax.tools.JavaFileManager delegate
         0: .line 496
            aload 0 /* this */
            aload 2 /* delegate */
            invokespecial javax.tools.ForwardingJavaFileManager.<init>:(Ljavax/tools/JavaFileManager;)V
         1: .line 497
            aload 0 /* this */
            aload 1 /* map */
            putfield com.sun.tools.javac.launcher.Main$MemoryFileManager.map:Ljava/util/Map;
         2: .line 498
            return
        end local 2 // javax.tools.JavaFileManager delegate
        end local 1 // java.util.Map map
        end local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/sun/tools/javac/launcher/Main$MemoryFileManager;
            0    3     1       map  Ljava/util/Map<Ljava/lang/String;[B>;
            0    3     2  delegate  Ljavax/tools/JavaFileManager;
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljavax/tools/JavaFileManager;)V
    MethodParameters:
          Name  Flags
      map       
      delegate  

  public javax.tools.JavaFileObject getJavaFileForOutput(javax.tools.JavaFileManager$Location, java.lang.String, javax.tools.JavaFileObject$Kind, javax.tools.FileObject);
    descriptor: (Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
        start local 1 // javax.tools.JavaFileManager$Location location
        start local 2 // java.lang.String className
        start local 3 // javax.tools.JavaFileObject$Kind kind
        start local 4 // javax.tools.FileObject sibling
         0: .line 503
            aload 1 /* location */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            if_acmpne 2
            aload 3 /* kind */
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            if_acmpne 2
         1: .line 504
            aload 0 /* this */
            aload 2 /* className */
            invokevirtual com.sun.tools.javac.launcher.Main$MemoryFileManager.createInMemoryClassFile:(Ljava/lang/String;)Ljavax/tools/JavaFileObject;
            areturn
         2: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* location */
            aload 2 /* className */
            aload 3 /* kind */
            aload 4 /* sibling */
            invokespecial javax.tools.ForwardingJavaFileManager.getJavaFileForOutput:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;Ljavax/tools/FileObject;)Ljavax/tools/JavaFileObject;
            areturn
        end local 4 // javax.tools.FileObject sibling
        end local 3 // javax.tools.JavaFileObject$Kind kind
        end local 2 // java.lang.String className
        end local 1 // javax.tools.JavaFileManager$Location location
        end local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/sun/tools/javac/launcher/Main$MemoryFileManager;
            0    3     1   location  Ljavax/tools/JavaFileManager$Location;
            0    3     2  className  Ljava/lang/String;
            0    3     3       kind  Ljavax/tools/JavaFileObject$Kind;
            0    3     4    sibling  Ljavax/tools/FileObject;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      location   
      className  
      kind       
      sibling    

  private javax.tools.JavaFileObject createInMemoryClassFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/tools/JavaFileObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
        start local 1 // java.lang.String className
         0: .line 511
            new java.lang.StringBuilder
            dup
            ldc "memory:///"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            astore 2 /* uri */
        start local 2 // java.net.URI uri
         1: .line 512
            new com.sun.tools.javac.launcher.Main$MemoryFileManager$1
            dup
            aload 0 /* this */
            aload 2 /* uri */
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            aload 1 /* className */
            invokespecial com.sun.tools.javac.launcher.Main$MemoryFileManager$1.<init>:(Lcom/sun/tools/javac/launcher/Main$MemoryFileManager;Ljava/net/URI;Ljavax/tools/JavaFileObject$Kind;Ljava/lang/String;)V
            areturn
        end local 2 // java.net.URI uri
        end local 1 // java.lang.String className
        end local 0 // com.sun.tools.javac.launcher.Main$MemoryFileManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/sun/tools/javac/launcher/Main$MemoryFileManager;
            0    2     1  className  Ljava/lang/String;
            1    2     2        uri  Ljava/net/URI;
    MethodParameters:
           Name  Flags
      className  
}
Signature: Ljavax/tools/ForwardingJavaFileManager<Ljavax/tools/JavaFileManager;>;
SourceFile: "Main.java"
NestHost: com.sun.tools.javac.launcher.Main
InnerClasses:
  private MemoryFileManager = com.sun.tools.javac.launcher.Main$MemoryFileManager of com.sun.tools.javac.launcher.Main
  com.sun.tools.javac.launcher.Main$MemoryFileManager$1
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject