public class jdk.tools.jlink.internal.ModularJarArchive extends jdk.tools.jlink.internal.JarArchive
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.tools.jlink.internal.ModularJarArchive
  super_class: jdk.tools.jlink.internal.JarArchive
{
  private static final java.lang.String JAR_EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".jar"

  private static final java.lang.String MODULE_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "module-info.class"

  public void <init>(java.lang.String, java.nio.file.Path);
    descriptor: (Ljava/lang/String;Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.ModularJarArchive this
        start local 1 // java.lang.String mn
        start local 2 // java.nio.file.Path jmod
         0: .line 43
            aload 0 /* this */
            aload 1 /* mn */
            aload 2 /* jmod */
            invokespecial jdk.tools.jlink.internal.JarArchive.<init>:(Ljava/lang/String;Ljava/nio/file/Path;)V
         1: .line 44
            aload 2 /* jmod */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 3 /* filename */
        start local 3 // java.lang.String filename
         2: .line 45
            aload 3 /* filename */
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 46
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported format: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* filename */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 48
      StackMap locals: jdk.tools.jlink.internal.ModularJarArchive java.lang.String java.nio.file.Path java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String filename
        end local 2 // java.nio.file.Path jmod
        end local 1 // java.lang.String mn
        end local 0 // jdk.tools.jlink.internal.ModularJarArchive this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljdk/tools/jlink/internal/ModularJarArchive;
            0    5     1        mn  Ljava/lang/String;
            0    5     2      jmod  Ljava/nio/file/Path;
            2    5     3  filename  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mn    
      jmod  

  jdk.tools.jlink.internal.Archive$Entry$EntryType toEntryType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ModularJarArchive this
        start local 1 // java.lang.String section
         0: .line 52
            getstatic jdk.tools.jlink.internal.Archive$Entry$EntryType.CLASS_OR_RESOURCE:Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
            areturn
        end local 1 // java.lang.String section
        end local 0 // jdk.tools.jlink.internal.ModularJarArchive this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljdk/tools/jlink/internal/ModularJarArchive;
            0    1     1  section  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      section  

  jdk.tools.jlink.internal.Archive$Entry toEntry(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)Ljdk/tools/jlink/internal/Archive$Entry;
    flags: (0x0000) 
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.ModularJarArchive this
        start local 1 // java.util.zip.ZipEntry ze
         0: .line 57
            aload 1 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 58
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual jdk.tools.jlink.internal.ModularJarArchive.toEntryType:(Ljava/lang/String;)Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
            astore 3 /* type */
        start local 3 // jdk.tools.jlink.internal.Archive$Entry$EntryType type
         2: .line 59
            new jdk.tools.jlink.internal.JarArchive$JarEntry
            dup
            aload 0 /* this */
            aload 1 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual jdk.tools.jlink.internal.ModularJarArchive.getFileName:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* type */
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.ModularJarArchive.getJarFile:()Ljava/util/jar/JarFile;
            aload 1 /* ze */
            invokespecial jdk.tools.jlink.internal.JarArchive$JarEntry.<init>:(Ljdk/tools/jlink/internal/JarArchive;Ljava/lang/String;Ljava/lang/String;Ljdk/tools/jlink/internal/Archive$Entry$EntryType;Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
            areturn
        end local 3 // jdk.tools.jlink.internal.Archive$Entry$EntryType type
        end local 2 // java.lang.String name
        end local 1 // java.util.zip.ZipEntry ze
        end local 0 // jdk.tools.jlink.internal.ModularJarArchive this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/ModularJarArchive;
            0    3     1    ze  Ljava/util/zip/ZipEntry;
            1    3     2  name  Ljava/lang/String;
            2    3     3  type  Ljdk/tools/jlink/internal/Archive$Entry$EntryType;
    MethodParameters:
      Name  Flags
      ze    

  java.lang.String getFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ModularJarArchive this
        start local 1 // java.lang.String entryName
         0: .line 64
            aload 1 /* entryName */
            areturn
        end local 1 // java.lang.String entryName
        end local 0 // jdk.tools.jlink.internal.ModularJarArchive this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/tools/jlink/internal/ModularJarArchive;
            0    1     1  entryName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      entryName  
}
SourceFile: "ModularJarArchive.java"
InnerClasses:
  public abstract Entry = jdk.tools.jlink.internal.Archive$Entry of jdk.tools.jlink.internal.Archive
  public final EntryType = jdk.tools.jlink.internal.Archive$Entry$EntryType of jdk.tools.jlink.internal.Archive$Entry
  public JarEntry = jdk.tools.jlink.internal.JarArchive$JarEntry of jdk.tools.jlink.internal.JarArchive