class jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl implements jdk.tools.jlink.plugin.ResourcePoolModule
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl
  super_class: java.lang.Object
{
  final java.util.Map<java.lang.String, jdk.tools.jlink.plugin.ResourcePoolEntry> moduleContent;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;

  private java.lang.module.ModuleDescriptor descriptor;
    descriptor: Ljava/lang/module/ModuleDescriptor;
    flags: (0x0002) ACC_PRIVATE

  private jdk.internal.module.ModuleTarget target;
    descriptor: Ljdk/internal/module/ModuleTarget;
    flags: (0x0002) ACC_PRIVATE

  final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final jdk.tools.jlink.internal.ResourcePoolManager this$0;
    descriptor: Ljdk/tools/jlink/internal/ResourcePoolManager;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(jdk.tools.jlink.internal.ResourcePoolManager, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/ResourcePoolManager;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
        start local 2 // java.lang.String name
         0: .line 86
            aload 0 /* this */
            aload 1
            putfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.this$0:Ljdk/tools/jlink/internal/ResourcePoolManager;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent:Ljava/util/Map;
         2: .line 87
            aload 0 /* this */
            aload 2 /* name */
            putfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.name:Ljava/lang/String;
         3: .line 88
            return
        end local 2 // java.lang.String name
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
            0    4     2  name  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      this$0  final
      name    

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 92
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.name:Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;

  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=4, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
        start local 1 // java.lang.String path
         0: .line 97
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 98
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 101
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
         4: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent: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$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
            0    5     1  path  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
    MethodParameters:
      Name  Flags
      path  

  public java.lang.module.ModuleDescriptor descriptor();
    descriptor: ()Ljava/lang/module/ModuleDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 108
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.initModuleAttributes:()V
         1: .line 109
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.descriptor:Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;

  public java.lang.String targetPlatform();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 114
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.initModuleAttributes:()V
         1: .line 115
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.target:Ljdk/internal/module/ModuleTarget;
            ifnull 2
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.target:Ljdk/internal/module/ModuleTarget;
            invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;

  private void initModuleAttributes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 119
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.descriptor:Ljava/lang/module/ModuleDescriptor;
            ifnonnull 4
         1: .line 120
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.ResourcePoolManager.readModuleAttributes:(Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljdk/internal/module/ModuleInfo$Attributes;
            astore 1 /* attr */
        start local 1 // jdk.internal.module.ModuleInfo$Attributes attr
         2: .line 121
            aload 0 /* this */
            aload 1 /* attr */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            putfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.descriptor:Ljava/lang/module/ModuleDescriptor;
         3: .line 122
            aload 0 /* this */
            aload 1 /* attr */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.target:()Ljdk/internal/module/ModuleTarget;
            putfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.target:Ljdk/internal/module/ModuleTarget;
        end local 1 // jdk.internal.module.ModuleInfo$Attributes attr
         4: .line 124
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
            2    4     1  attr  Ljdk/internal/module/ModuleInfo$Attributes;

  public java.util.Set<java.lang.String> packages();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 128
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* pkgs */
        start local 1 // java.util.Set pkgs
         1: .line 129
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         2: .line 130
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl.lambda$0(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 131
            aload 1 /* pkgs */
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl.lambda$1(Ljava/util/Set;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 140
            aload 1 /* pkgs */
            areturn
        end local 1 // java.util.Set pkgs
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
            1    5     1  pkgs  Ljava/util/Set<Ljava/lang/String;>;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
         0: .line 145
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.name:()Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;

  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$ResourcePoolModuleImpl this
         0: .line 150
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent: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$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;
    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$ResourcePoolModuleImpl this
         0: .line 155
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl.moduleContent: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$ResourcePoolModuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/ResourcePoolManager$ResourcePoolModuleImpl;

  private static boolean lambda$0(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry m
         0: .line 130
            aload 0 /* m */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     m  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private static void lambda$1(java.util.Set, jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljava/util/Set;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry res
         0: .line 132
            aload 1 /* res */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            invokestatic jdk.tools.jlink.internal.ImageFileCreator.resourceName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 133
            aload 2 /* name */
            invokestatic jdk.tools.jlink.internal.ResourcePoolManager.isNamedPackageResource:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 134
            aload 2 /* name */
            invokestatic jdk.tools.jlink.internal.ImageFileCreator.toPackage:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pkg */
        start local 3 // java.lang.String pkg
         3: .line 135
            aload 3 /* pkg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 5
         4: .line 136
            aload 0
            aload 3 /* pkg */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String pkg
        end local 2 // java.lang.String name
         5: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolEntry res
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     1   res  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            1    5     2  name  Ljava/lang/String;
            3    5     3   pkg  Ljava/lang/String;
}
SourceFile: "ResourcePoolManager.java"
NestHost: jdk.tools.jlink.internal.ResourcePoolManager
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
  ResourcePoolModuleImpl = jdk.tools.jlink.internal.ResourcePoolManager$ResourcePoolModuleImpl of jdk.tools.jlink.internal.ResourcePoolManager
  public final Type = jdk.tools.jlink.plugin.ResourcePoolEntry$Type of jdk.tools.jlink.plugin.ResourcePoolEntry