public class org.graalvm.component.installer.persist.DirectoryCatalogProvider implements org.graalvm.component.installer.model.ComponentStorage, org.graalvm.component.installer.SoftwareChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.persist.DirectoryCatalogProvider
  super_class: java.lang.Object
{
  private final java.nio.file.Path directory;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.component.installer.Feedback feedback;
    descriptor: Lorg/graalvm/component/installer/Feedback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean verifyJars;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean reportErrors;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.util.Set<org.graalvm.component.installer.model.ComponentInfo>> dirContents;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Lorg/graalvm/component/installer/model/ComponentInfo;>;>;

  public void <init>(java.nio.file.Path, org.graalvm.component.installer.Feedback);
    descriptor: (Ljava/nio/file/Path;Lorg/graalvm/component/installer/Feedback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // java.nio.file.Path directory
        start local 2 // org.graalvm.component.installer.Feedback feedback
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.verifyJars:Z
         2: .line 64
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.reportErrors:Z
         3: .line 69
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
         4: .line 72
            aload 0 /* this */
            aload 1 /* directory */
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.directory:Ljava/nio/file/Path;
         5: .line 73
            aload 0 /* this */
            aload 2 /* feedback */
            ldc Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            invokeinterface org.graalvm.component.installer.Feedback.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.feedback:Lorg/graalvm/component/installer/Feedback;
         6: .line 74
            return
        end local 2 // org.graalvm.component.installer.Feedback feedback
        end local 1 // java.nio.file.Path directory
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    7     1  directory  Ljava/nio/file/Path;
            0    7     2   feedback  Lorg/graalvm/component/installer/Feedback;
    MethodParameters:
           Name  Flags
      directory  
      feedback   

  public boolean isReportErrors();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
         0: .line 77
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.reportErrors:Z
            ireturn
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;

  public void setReportErrors(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // boolean reportErrors
         0: .line 81
            aload 0 /* this */
            iload 1 /* reportErrors */
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.reportErrors:Z
         1: .line 82
            return
        end local 1 // boolean reportErrors
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    2     1  reportErrors  Z
    MethodParameters:
              Name  Flags
      reportErrors  

  public void setVerifyJars(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // boolean verifyJars
         0: .line 85
            aload 0 /* this */
            iload 1 /* verifyJars */
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.verifyJars:Z
         1: .line 86
            return
        end local 1 // boolean verifyJars
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    2     1  verifyJars  Z
    MethodParameters:
            Name  Flags
      verifyJars  

  public java.util.Set<java.lang.String> listComponentIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
         0: .line 90
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryCatalogProvider.initComponents:()V
         1: .line 91
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            areturn
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public org.graalvm.component.installer.model.ComponentInfo loadComponentFiles(org.graalvm.component.installer.model.ComponentInfo);
    descriptor: (Lorg/graalvm/component/installer/model/ComponentInfo;)Lorg/graalvm/component/installer/model/ComponentInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // org.graalvm.component.installer.model.ComponentInfo ci
         0: .line 96
            aload 1 /* ci */
            areturn
        end local 1 // org.graalvm.component.installer.model.ComponentInfo ci
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    1     1    ci  Lorg/graalvm/component/installer/model/ComponentInfo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ci    

  public java.util.Set<org.graalvm.component.installer.model.ComponentInfo> loadComponentMetadata(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // java.lang.String id
         0: .line 101
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryCatalogProvider.initComponents:()V
         1: .line 102
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            areturn
        end local 1 // java.lang.String id
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    2     1    id  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/Set<Lorg/graalvm/component/installer/model/ComponentInfo;>;
    MethodParameters:
      Name  Flags
      id    

  public java.util.Map<java.lang.String, java.lang.String> loadGraalVersionInfo();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
         0: .line 107
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryCatalogProvider.initComponents:()V
         1: .line 108
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported yet."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private void initComponents();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
         0: .line 114
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
            ifnull 2
         1: .line 115
            return
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
         3: .line 119
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.directory:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 5
         4: .line 120
            return
         5: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.directory:Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.list:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;)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
                  org/graalvm/component/installer/persist/DirectoryCatalogProvider.lambda$0(Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         6: .line 139
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         7: pop
         8: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.IOException

  private org.graalvm.component.installer.model.ComponentInfo maybeCreateComponent(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Lorg/graalvm/component/installer/model/ComponentInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // java.nio.file.Path localFile
         0: .line 145
            aconst_null
            astore 2 /* fileStart */
        start local 2 // byte[] fileStart
         1: .line 148
            aload 1 /* localFile */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 15
         2: .line 149
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 1 /* localFile */
            iconst_1
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
            astore 6 /* ch */
        start local 6 // java.nio.channels.ReadableByteChannel ch
         4: .line 150
            bipush 8
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 7 /* bb */
        start local 7 // java.nio.ByteBuffer bb
         5: .line 151
            aload 6 /* ch */
            aload 7 /* bb */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            pop
         6: .line 152
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 2 /* fileStart */
        end local 7 // java.nio.ByteBuffer bb
         7: .line 153
            aload 6 /* ch */
            ifnull 13
            aload 6 /* ch */
            invokeinterface java.nio.channels.ReadableByteChannel.close:()V
            goto 13
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] top java.lang.Throwable java.lang.Throwable java.nio.channels.ReadableByteChannel
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 6 /* ch */
            ifnull 9
            aload 6 /* ch */
            invokeinterface java.nio.channels.ReadableByteChannel.close:()V
        end local 6 // java.nio.channels.ReadableByteChannel ch
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 4
            ifnonnull 11
            aload 5
            astore 4
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 4
            aload 5
            if_acmpeq 12
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
        13: .line 154
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[]
      StackMap stack:
            aload 1 /* localFile */
            aconst_null
            invokestatic org.graalvm.component.installer.SystemUtils.computeFileDigest:(Ljava/nio/file/Path;Ljava/lang/String;)[B
            invokestatic org.graalvm.component.installer.SystemUtils.fingerPrint:([B)Ljava/lang/String;
            astore 3 /* serial */
        start local 3 // java.lang.String serial
        14: .line 155
            goto 17
        end local 3 // java.lang.String serial
        15: .line 156
      StackMap locals:
      StackMap stack:
            bipush 8
            newarray 8
            astore 2 /* fileStart */
        16: .line 157
            aload 1 /* localFile */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            iconst_0
            invokestatic org.graalvm.component.installer.SystemUtils.digestString:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 3 /* serial */
        start local 3 // java.lang.String serial
        17: .line 159
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 4 /* ldr */
        start local 4 // org.graalvm.component.installer.persist.MetadataLoader ldr
        18: .line 161
            ldc Lorg/graalvm/component/installer/ComponentArchiveReader;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 6
            goto 29
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader top java.util.Iterator
      StackMap stack:
        19: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentArchiveReader
            astore 5 /* provider */
        start local 5 // org.graalvm.component.installer.ComponentArchiveReader provider
        20: .line 162
            aload 5 /* provider */
            aload 1 /* localFile */
            aload 2 /* fileStart */
            aload 3 /* serial */
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.feedback:Lorg/graalvm/component/installer/Feedback;
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.verifyJars:Z
            invokeinterface org.graalvm.component.installer.ComponentArchiveReader.createLoader:(Ljava/nio/file/Path;[BLjava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)Lorg/graalvm/component/installer/persist/MetadataLoader;
            astore 4 /* ldr */
        21: .line 163
            aload 4 /* ldr */
            ifnull 29
        22: .line 164
            aload 4 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 7 /* info */
        start local 7 // org.graalvm.component.installer.model.ComponentInfo info
        23: .line 165
            aload 7 /* info */
            aload 1 /* localFile */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.setRemoteURL:(Ljava/net/URL;)V
        24: .line 166
            aload 7 /* info */
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.feedback:Lorg/graalvm/component/installer/Feedback;
            ldc "DIR_LocalFile"
            iconst_0
            anewarray java.lang.Object
            invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.setOrigin:(Ljava/lang/String;)V
        25: .line 167
            aload 7 /* info */
            astore 9
        26: .line 172
            aload 4 /* ldr */
            ifnull 28
        27: .line 173
            aload 4 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.close:()V
        28: .line 167
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader org.graalvm.component.installer.ComponentArchiveReader java.util.Iterator org.graalvm.component.installer.model.ComponentInfo top org.graalvm.component.installer.model.ComponentInfo
      StackMap stack:
            aload 9
            areturn
        end local 7 // org.graalvm.component.installer.model.ComponentInfo info
        end local 5 // org.graalvm.component.installer.ComponentArchiveReader provider
        29: .line 161
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        30: .line 170
            goto 35
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader
      StackMap stack: java.lang.Throwable
        31: astore 8
        32: .line 172
            aload 4 /* ldr */
            ifnull 34
        33: .line 173
            aload 4 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.close:()V
        34: .line 175
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader top top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        35: .line 172
      StackMap locals: org.graalvm.component.installer.persist.DirectoryCatalogProvider java.nio.file.Path byte[] java.lang.String org.graalvm.component.installer.persist.MetadataLoader
      StackMap stack:
            aload 4 /* ldr */
            ifnull 37
        36: .line 173
            aload 4 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.close:()V
        37: .line 176
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.graalvm.component.installer.persist.MetadataLoader ldr
        end local 3 // java.lang.String serial
        end local 2 // byte[] fileStart
        end local 1 // java.nio.file.Path localFile
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   38     0       this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0   38     1  localFile  Ljava/nio/file/Path;
            1   38     2  fileStart  [B
           14   15     3     serial  Ljava/lang/String;
           17   38     3     serial  Ljava/lang/String;
            4    9     6         ch  Ljava/nio/channels/ReadableByteChannel;
            5    7     7         bb  Ljava/nio/ByteBuffer;
           18   38     4        ldr  Lorg/graalvm/component/installer/persist/MetadataLoader;
           20   29     5   provider  Lorg/graalvm/component/installer/ComponentArchiveReader;
           23   29     7       info  Lorg/graalvm/component/installer/model/ComponentInfo;
      Exception table:
        from    to  target  type
           4     7       8  any
           3    10      10  any
          18    26      31  any
          29    31      31  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      localFile  

  public org.graalvm.component.installer.model.ComponentStorage getStorage();
    descriptor: ()Lorg/graalvm/component/installer/model/ComponentStorage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
         0: .line 181
            aload 0 /* this */
            areturn
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
    Exceptions:
      throws java.io.IOException

  public org.graalvm.component.installer.remote.FileDownloader configureDownloader(org.graalvm.component.installer.model.ComponentInfo, org.graalvm.component.installer.remote.FileDownloader);
    descriptor: (Lorg/graalvm/component/installer/model/ComponentInfo;Lorg/graalvm/component/installer/remote/FileDownloader;)Lorg/graalvm/component/installer/remote/FileDownloader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // org.graalvm.component.installer.model.ComponentInfo info
        start local 2 // org.graalvm.component.installer.remote.FileDownloader dn
         0: .line 186
            aload 2 /* dn */
            areturn
        end local 2 // org.graalvm.component.installer.remote.FileDownloader dn
        end local 1 // org.graalvm.component.installer.model.ComponentInfo info
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0    1     1  info  Lorg/graalvm/component/installer/model/ComponentInfo;
            0    1     2    dn  Lorg/graalvm/component/installer/remote/FileDownloader;
    MethodParameters:
      Name  Flags
      info  
      dn    

  private void lambda$0(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
        start local 1 // java.nio.file.Path p
         0: .line 125
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.graalvm.component.installer.persist.DirectoryCatalogProvider.maybeCreateComponent:(Ljava/nio/file/Path;)Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 2 /* info */
        start local 2 // org.graalvm.component.installer.model.ComponentInfo info
         1: .line 126
            aload 2 /* info */
            ifnull 11
         2: .line 127
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.dirContents:Ljava/util/Map;
            aload 2 /* info */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/graalvm/component/installer/persist/DirectoryCatalogProvider.lambda$1(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 2 /* info */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.graalvm.component.installer.model.ComponentInfo info
         3: .line 129
            goto 11
      StackMap locals:
      StackMap stack: org.graalvm.component.installer.MetadataException
         4: astore 2 /* ex */
        start local 2 // org.graalvm.component.installer.MetadataException ex
         5: .line 130
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.reportErrors:Z
            ifeq 11
         6: .line 131
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.feedback:Lorg/graalvm/component/installer/Feedback;
            ldc "ERR_DirectoryComponentMetadata"
            aload 2 /* ex */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* ex */
            invokevirtual org.graalvm.component.installer.MetadataException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        end local 2 // org.graalvm.component.installer.MetadataException ex
         7: goto 11
         8: .line 133
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         9: .line 134
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.reportErrors:Z
            ifeq 11
        10: .line 135
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryCatalogProvider.feedback:Lorg/graalvm/component/installer/Feedback;
            ldc "ERR_DirectoryComponentError"
            aload 2 /* ex */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* ex */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        end local 2 // java.lang.Exception ex
        11: .line 138
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path p
        end local 0 // org.graalvm.component.installer.persist.DirectoryCatalogProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/graalvm/component/installer/persist/DirectoryCatalogProvider;
            0   12     1     p  Ljava/nio/file/Path;
            1    3     2  info  Lorg/graalvm/component/installer/model/ComponentInfo;
            5    7     2    ex  Lorg/graalvm/component/installer/MetadataException;
            9   11     2    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class org.graalvm.component.installer.MetadataException
           0     3       8  Class java.io.IOException
           0     3       8  Class org.graalvm.component.installer.FailedOperationException

  private static java.util.Set lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String id
         0: .line 127
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    id  Ljava/lang/String;
}
SourceFile: "DirectoryCatalogProvider.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles