public class jdk.tools.jlink.internal.ResourcePoolManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.tools.jlink.internal.ResourcePoolManager
  super_class: java.lang.Object
{
  private final java.util.Map<java.lang.String, jdk.tools.jlink.plugin.ResourcePoolEntry> resources;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;

  private final java.util.Map<java.lang.String, jdk.tools.jlink.plugin.ResourcePoolModule> modules;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolModule;>;

  private final java.nio.ByteOrder order;
    descriptor: Ljava/nio/ByteOrder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jlink.internal.StringTable table;
    descriptor: Ljdk/tools/jlink/internal/StringTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jlink.plugin.ResourcePool poolImpl;
    descriptor: Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jlink.plugin.ResourcePoolBuilder poolBuilderImpl;
    descriptor: Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jlink.plugin.ResourcePoolModuleView moduleViewImpl;
    descriptor: Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static jdk.internal.module.ModuleInfo$Attributes readModuleAttributes(jdk.tools.jlink.plugin.ResourcePoolModule);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljdk/internal/module/ModuleInfo$Attributes;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolModule mod
         0: .line 55
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mod */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/module-info.class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* p */
        start local 1 // java.lang.String p
         1: .line 56
            aload 0 /* mod */
            aload 1 /* p */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
            astore 2 /* content */
        start local 2 // java.util.Optional content
         2: .line 57
            aload 2 /* content */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 6
         3: .line 58
            new jdk.tools.jlink.plugin.PluginException
            dup
            new java.lang.StringBuilder
            dup
            ldc "module-info.class not found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 59
            aload 0 /* mod */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 58
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 61
      StackMap locals: java.lang.String java.util.Optional
      StackMap stack:
            aload 2 /* content */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes:()[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 3 /* bb */
        start local 3 // java.nio.ByteBuffer bb
         7: .line 63
            aload 3 /* bb */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/nio/ByteBuffer;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
         8: areturn
         9: .line 64
      StackMap locals: jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String java.util.Optional java.nio.ByteBuffer
      StackMap stack: java.lang.RuntimeException
            astore 4 /* re */
        start local 4 // java.lang.RuntimeException re
        10: .line 65
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "module info cannot be read for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mod */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* re */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.RuntimeException re
        end local 3 // java.nio.ByteBuffer bb
        end local 2 // java.util.Optional content
        end local 1 // java.lang.String p
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolModule mod
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0      mod  Ljdk/tools/jlink/plugin/ResourcePoolModule;
            1   11     1        p  Ljava/lang/String;
            2   11     2  content  Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
            7   11     3       bb  Ljava/nio/ByteBuffer;
           10   11     4       re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.RuntimeException
    MethodParameters:
      Name  Flags
      mod   

  public static boolean isNamedPackageResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 73
            aload 0 /* path */
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 1
            aload 0 /* path */
            ldc "module-info.class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            invokestatic jdk.internal.module.Resources.canEncapsulate:(Ljava/lang/String;)Z
            ifne 3
         2: .line 73
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 249
            aload 0 /* this */
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager.<init>:(Ljava/nio/ByteOrder;)V
         1: .line 250
            return
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public void <init>(java.nio.ByteOrder);
    descriptor: (Ljava/nio/ByteOrder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // java.nio.ByteOrder order
         0: .line 253
            aload 0 /* this */
            aload 1 /* order */
            new jdk.tools.jlink.internal.ResourcePoolManager$1
            dup
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$1.<init>:()V
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager.<init>:(Ljava/nio/ByteOrder;Ljdk/tools/jlink/internal/StringTable;)V
         1: .line 265
            return
        end local 1 // java.nio.ByteOrder order
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    2     1  order  Ljava/nio/ByteOrder;
    MethodParameters:
       Name  Flags
      order  

  public void <init>(java.nio.ByteOrder, jdk.tools.jlink.internal.StringTable);
    descriptor: (Ljava/nio/ByteOrder;Ljdk/tools/jlink/internal/StringTable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // java.nio.ByteOrder order
        start local 2 // jdk.tools.jlink.internal.StringTable table
         0: .line 267
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 240
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
         2: .line 241
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
         3: .line 268
            aload 0 /* this */
            aload 1 /* order */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.ByteOrder
            putfield jdk.tools.jlink.internal.ResourcePoolManager.order:Ljava/nio/ByteOrder;
         4: .line 269
            aload 0 /* this */
            aload 2 /* table */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.StringTable
            putfield jdk.tools.jlink.internal.ResourcePoolManager.table:Ljdk/tools/jlink/internal/StringTable;
         5: .line 270
            aload 0 /* this */
            new jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolImpl
            dup
            aload 0 /* this */
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolImpl.<init>:(Ljdk/tools/jlink/internal/ResourcePoolManager;)V
            putfield jdk.tools.jlink.internal.ResourcePoolManager.poolImpl:Ljdk/tools/jlink/plugin/ResourcePool;
         6: .line 271
            aload 0 /* this */
            new jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolBuilderImpl
            dup
            aload 0 /* this */
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolBuilderImpl.<init>:(Ljdk/tools/jlink/internal/ResourcePoolManager;)V
            putfield jdk.tools.jlink.internal.ResourcePoolManager.poolBuilderImpl:Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
         7: .line 272
            aload 0 /* this */
            new jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleViewImpl
            dup
            aload 0 /* this */
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleViewImpl.<init>:(Ljdk/tools/jlink/internal/ResourcePoolManager;)V
            putfield jdk.tools.jlink.internal.ResourcePoolManager.moduleViewImpl:Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
         8: .line 273
            return
        end local 2 // jdk.tools.jlink.internal.StringTable table
        end local 1 // java.nio.ByteOrder order
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    9     1  order  Ljava/nio/ByteOrder;
            0    9     2  table  Ljdk/tools/jlink/internal/StringTable;
    MethodParameters:
       Name  Flags
      order  
      table  

  public jdk.tools.jlink.plugin.ResourcePool resourcePool();
    descriptor: ()Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 276
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.poolImpl:Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public jdk.tools.jlink.plugin.ResourcePoolBuilder resourcePoolBuilder();
    descriptor: ()Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 280
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.poolBuilderImpl:Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public jdk.tools.jlink.plugin.ResourcePoolModuleView moduleView();
    descriptor: ()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 284
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.moduleViewImpl:Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public void add(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
         0: .line 293
            aload 1 /* data */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 294
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         2: .line 295
            new jdk.tools.jlink.plugin.PluginException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Resource "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 296
            ldc " already present"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 295
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            astore 2 /* modulename */
        start local 2 // java.lang.String modulename
         6: .line 299
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            aload 2 /* modulename */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl
            astore 3 /* m */
        start local 3 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl m
         7: .line 300
            aload 3 /* m */
            ifnonnull 10
         8: .line 301
            new jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl
            dup
            aload 0 /* this */
            aload 2 /* modulename */
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.<init>:(Ljdk/tools/jlink/internal/ResourcePoolManager;Ljava/lang/String;)V
            astore 3 /* m */
         9: .line 302
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            aload 2 /* modulename */
            aload 3 /* m */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 304
      StackMap locals: java.lang.String jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            aload 1 /* data */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 305
            aload 3 /* m */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent:Ljava/util/Map;
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            aload 1 /* data */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 306
            return
        end local 3 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl m
        end local 2 // java.lang.String modulename
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0   13     1        data  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            6   13     2  modulename  Ljava/lang/String;
            7   13     3           m  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
    MethodParameters:
      Name  Flags
      data  

  public java.util.Optional<jdk.tools.jlink.plugin.ResourcePoolModule> findModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // java.lang.String name
         0: .line 315
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 316
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolModule
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // java.lang.String name
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    2     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolModule;>;
    MethodParameters:
      Name  Flags
      name  

  public java.util.stream.Stream<jdk.tools.jlink.plugin.ResourcePoolModule> modules();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 325
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;
    Signature: ()Ljava/util/stream/Stream<Ljdk/tools/jlink/plugin/ResourcePoolModule;>;

  public int moduleCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 334
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public java.util.stream.Stream<jdk.tools.jlink.plugin.ResourcePoolEntry> entries();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 343
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;
    Signature: ()Ljava/util/stream/Stream<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;

  public int entryCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 352
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            ireturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public java.util.Optional<jdk.tools.jlink.plugin.ResourcePoolEntry> findEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // java.lang.String path
         0: .line 362
            aload 1 /* path */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 363
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            aload 1 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // java.lang.String path
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    2     1  path  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
    MethodParameters:
      Name  Flags
      path  

  public java.util.Optional<jdk.tools.jlink.plugin.ResourcePoolEntry> findEntryInContext(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // java.lang.String path
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolEntry context
         0: .line 374
            aload 1 /* path */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 375
            aload 2 /* context */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 376
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.modules:Ljava/util/Map;
            aload 2 /* context */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolModule
            astore 3 /* module */
        start local 3 // jdk.tools.jlink.plugin.ResourcePoolModule module
         3: .line 377
            aload 3 /* module */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 378
            aload 3 /* module */
            aload 1 /* path */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
            astore 4 /* entry */
        start local 4 // java.util.Optional entry
         5: .line 381
            aload 4 /* entry */
            areturn
        end local 4 // java.util.Optional entry
        end local 3 // jdk.tools.jlink.plugin.ResourcePoolModule module
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolEntry context
        end local 1 // java.lang.String path
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    6     1     path  Ljava/lang/String;
            0    6     2  context  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            3    6     3   module  Ljdk/tools/jlink/plugin/ResourcePoolModule;
            5    6     4    entry  Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
    Signature: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
    MethodParameters:
         Name  Flags
      path     
      context  

  public boolean contains(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
         0: .line 391
            aload 1 /* data */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 392
            aload 0 /* this */
            aload 1 /* data */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokevirtual jdk.tools.jlink.internal.ResourcePoolManager.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry data
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;
            0    2     1  data  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    MethodParameters:
      Name  Flags
      data  

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 401
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.resources:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ireturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public java.nio.ByteOrder byteOrder();
    descriptor: ()Ljava/nio/ByteOrder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 410
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.order:Ljava/nio/ByteOrder;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public jdk.tools.jlink.internal.StringTable getStringTable();
    descriptor: ()Ljdk/tools/jlink/internal/StringTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
         0: .line 414
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager.table:Ljdk/tools/jlink/internal/StringTable;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager;

  public static jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData newCompressedResource(jdk.tools.jlink.plugin.ResourcePoolEntry, java.nio.ByteBuffer, java.lang.String, java.lang.String, jdk.tools.jlink.internal.StringTable, java.nio.ByteOrder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljdk/tools/jlink/internal/StringTable;Ljava/nio/ByteOrder;)Ljdk/tools/jlink/internal/ResourcePoolManager$CompressedModuleData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=16, args_size=6
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry original
        start local 1 // java.nio.ByteBuffer compressed
        start local 2 // java.lang.String plugin
        start local 3 // java.lang.String pluginConfig
        start local 4 // jdk.tools.jlink.internal.StringTable strings
        start local 5 // java.nio.ByteOrder order
         0: .line 453
            aload 0 /* original */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 454
            aload 1 /* compressed */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 455
            aload 2 /* plugin */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 457
            aload 0 /* original */
            instanceof jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* isTerminal */
        start local 6 // boolean isTerminal
         6: .line 458
            aload 0 /* original */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentLength:()J
            lstore 7 /* uncompressed_size */
        start local 7 // long uncompressed_size
         7: .line 459
            aload 0 /* original */
            instanceof jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData
            ifeq 10
         8: .line 460
            aload 0 /* original */
            checkcast jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData
            astore 9 /* comp */
        start local 9 // jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData comp
         9: .line 461
            aload 9 /* comp */
            invokevirtual jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData.getUncompressedSize:()J
            lstore 7 /* uncompressed_size */
        end local 9 // jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData comp
        10: .line 463
      StackMap locals: int long
      StackMap stack:
            aload 4 /* strings */
            aload 2 /* plugin */
            invokeinterface jdk.tools.jlink.internal.StringTable.addString:(Ljava/lang/String;)I
            istore 9 /* nameOffset */
        start local 9 // int nameOffset
        11: .line 464
            iconst_m1
            istore 10 /* configOffset */
        start local 10 // int configOffset
        12: .line 465
            aload 3 /* pluginConfig */
            ifnull 14
        13: .line 466
            aload 4 /* strings */
            aload 2 /* plugin */
            invokeinterface jdk.tools.jlink.internal.StringTable.addString:(Ljava/lang/String;)I
            istore 10 /* configOffset */
        14: .line 469
      StackMap locals: int int
      StackMap stack:
            new jdk.internal.jimage.decompressor.CompressedResourceHeader
            dup
            aload 1 /* compressed */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            aload 0 /* original */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentLength:()J
        15: .line 470
            iload 9 /* nameOffset */
            iload 10 /* configOffset */
            iload 6 /* isTerminal */
        16: .line 469
            invokespecial jdk.internal.jimage.decompressor.CompressedResourceHeader.<init>:(JJIIZ)V
        17: .line 468
            astore 11 /* rh */
        start local 11 // jdk.internal.jimage.decompressor.CompressedResourceHeader rh
        18: .line 472
            aload 11 /* rh */
            aload 5 /* order */
            invokevirtual jdk.internal.jimage.decompressor.CompressedResourceHeader.getBytes:(Ljava/nio/ByteOrder;)[B
            astore 12 /* h */
        start local 12 // byte[] h
        19: .line 473
            aload 1 /* compressed */
            invokevirtual java.nio.ByteBuffer.limit:()I
            aload 12 /* h */
            arraylength
            iadd
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 13 /* bb */
        start local 13 // java.nio.ByteBuffer bb
        20: .line 474
            aload 13 /* bb */
            aload 5 /* order */
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
        21: .line 475
            aload 13 /* bb */
            aload 12 /* h */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        22: .line 476
            aload 13 /* bb */
            aload 1 /* compressed */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        23: .line 477
            aload 13 /* bb */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 14 /* contentWithHeader */
        start local 14 // byte[] contentWithHeader
        24: .line 480
            new jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData
            dup
            aload 0 /* original */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
            aload 0 /* original */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
        25: .line 481
            aload 14 /* contentWithHeader */
            lload 7 /* uncompressed_size */
        26: .line 480
            invokespecial jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData.<init>:(Ljava/lang/String;Ljava/lang/String;[BJ)V
        27: .line 479
            astore 15 /* compressedResource */
        start local 15 // jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData compressedResource
        28: .line 482
            aload 15 /* compressedResource */
            areturn
        end local 15 // jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData compressedResource
        end local 14 // byte[] contentWithHeader
        end local 13 // java.nio.ByteBuffer bb
        end local 12 // byte[] h
        end local 11 // jdk.internal.jimage.decompressor.CompressedResourceHeader rh
        end local 10 // int configOffset
        end local 9 // int nameOffset
        end local 7 // long uncompressed_size
        end local 6 // boolean isTerminal
        end local 5 // java.nio.ByteOrder order
        end local 4 // jdk.tools.jlink.internal.StringTable strings
        end local 3 // java.lang.String pluginConfig
        end local 2 // java.lang.String plugin
        end local 1 // java.nio.ByteBuffer compressed
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry original
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0            original  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            0   29     1          compressed  Ljava/nio/ByteBuffer;
            0   29     2              plugin  Ljava/lang/String;
            0   29     3        pluginConfig  Ljava/lang/String;
            0   29     4             strings  Ljdk/tools/jlink/internal/StringTable;
            0   29     5               order  Ljava/nio/ByteOrder;
            6   29     6          isTerminal  Z
            7   29     7   uncompressed_size  J
            9   10     9                comp  Ljdk/tools/jlink/internal/ResourcePoolManager$CompressedModuleData;
           11   29     9          nameOffset  I
           12   29    10        configOffset  I
           18   29    11                  rh  Ljdk/internal/jimage/decompressor/CompressedResourceHeader;
           19   29    12                   h  [B
           20   29    13                  bb  Ljava/nio/ByteBuffer;
           24   29    14   contentWithHeader  [B
           28   29    15  compressedResource  Ljdk/tools/jlink/internal/ResourcePoolManager$CompressedModuleData;
    MethodParameters:
              Name  Flags
      original      
      compressed    
      plugin        
      pluginConfig  
      strings       
      order         
}
SourceFile: "ResourcePoolManager.java"
NestMembers:
  jdk.tools.jlink.internal.ResourcePoolManager$1  jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData  jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolBuilderImpl  jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolImpl  jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl  jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleViewImpl
InnerClasses:
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
  jdk.tools.jlink.internal.ResourcePoolManager$1
  public final CompressedModuleData = jdk.tools.jlink.internal.ResourcePoolManager$CompressedModuleData of jdk.tools.jlink.internal.ResourcePoolManager
  ResourcePoolBuilderImpl = jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolBuilderImpl of jdk.tools.jlink.internal.ResourcePoolManager
  public ResourcePoolImpl = jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolImpl of jdk.tools.jlink.internal.ResourcePoolManager
  ResourcePoolModuleImpl = jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl of jdk.tools.jlink.internal.ResourcePoolManager
  ResourcePoolModuleViewImpl = jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleViewImpl of jdk.tools.jlink.internal.ResourcePoolManager