public class org.graalvm.component.installer.remote.CatalogIterable implements org.graalvm.component.installer.ComponentIterable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.remote.CatalogIterable
  super_class: java.lang.Object
{
  private final org.graalvm.component.installer.CommandInput input;
    descriptor: Lorg/graalvm/component/installer/CommandInput;
    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 org.graalvm.component.installer.ComponentCatalog remoteRegistry;
    descriptor: Lorg/graalvm/component/installer/ComponentCatalog;
    flags: (0x0002) ACC_PRIVATE

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

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

  private org.graalvm.component.installer.Version$Match versionFilter;
    descriptor: Lorg/graalvm/component/installer/Version$Match;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.graalvm.component.installer.CommandInput, org.graalvm.component.installer.Feedback);
    descriptor: (Lorg/graalvm/component/installer/CommandInput;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.remote.CatalogIterable this
        start local 1 // org.graalvm.component.installer.CommandInput input
        start local 2 // org.graalvm.component.installer.Feedback feedback
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 0 /* this */
            aload 1 /* input */
            putfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
         2: .line 72
            aload 0 /* this */
            aload 2 /* feedback */
            ldc Lorg/graalvm/component/installer/remote/CatalogIterable;
            invokeinterface org.graalvm.component.installer.Feedback.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
            putfield org.graalvm.component.installer.remote.CatalogIterable.feedback:Lorg/graalvm/component/installer/Feedback;
         3: .line 73
            return
        end local 2 // org.graalvm.component.installer.Feedback feedback
        end local 1 // org.graalvm.component.installer.CommandInput input
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    4     1     input  Lorg/graalvm/component/installer/CommandInput;
            0    4     2  feedback  Lorg/graalvm/component/installer/Feedback;
    MethodParameters:
          Name  Flags
      input     
      feedback  

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

  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.remote.CatalogIterable this
        start local 1 // boolean verifyJars
         0: .line 81
            aload 0 /* this */
            iload 1 /* verifyJars */
            putfield org.graalvm.component.installer.remote.CatalogIterable.verifyJars:Z
         1: .line 82
            return
        end local 1 // boolean verifyJars
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    2     1  verifyJars  Z
    MethodParameters:
            Name  Flags
      verifyJars  

  public java.util.Iterator<org.graalvm.component.installer.ComponentParam> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
         0: .line 86
            new org.graalvm.component.installer.remote.CatalogIterable$It
            dup
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable$It.<init>:(Lorg/graalvm/component/installer/remote/CatalogIterable;)V
            areturn
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/remote/CatalogIterable;
    Signature: ()Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;

  org.graalvm.component.installer.ComponentCatalog getRegistry();
    descriptor: ()Lorg/graalvm/component/installer/ComponentCatalog;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
         0: .line 90
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.remoteRegistry:Lorg/graalvm/component/installer/ComponentCatalog;
            ifnonnull 2
         1: .line 91
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
            invokeinterface org.graalvm.component.installer.CommandInput.getCatalogFactory:()Lorg/graalvm/component/installer/CommandInput$CatalogFactory;
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
            invokeinterface org.graalvm.component.installer.CommandInput$CatalogFactory.createComponentCatalog:(Lorg/graalvm/component/installer/CommandInput;)Lorg/graalvm/component/installer/ComponentCatalog;
            putfield org.graalvm.component.installer.remote.CatalogIterable.remoteRegistry:Lorg/graalvm/component/installer/ComponentCatalog;
         2: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.remoteRegistry:Lorg/graalvm/component/installer/ComponentCatalog;
            areturn
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/remote/CatalogIterable;

  public org.graalvm.component.installer.ComponentIterable allowIncompatible();
    descriptor: ()Lorg/graalvm/component/installer/ComponentIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
         0: .line 98
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.component.installer.remote.CatalogIterable.incompatible:Z
         1: .line 99
            aload 0 /* this */
            areturn
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/remote/CatalogIterable;

  public org.graalvm.component.installer.ComponentIterable matchVersion(org.graalvm.component.installer.Version$Match);
    descriptor: (Lorg/graalvm/component/installer/Version$Match;)Lorg/graalvm/component/installer/ComponentIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
        start local 1 // org.graalvm.component.installer.Version$Match m
         0: .line 106
            aload 0 /* this */
            aload 1 /* m */
            putfield org.graalvm.component.installer.remote.CatalogIterable.versionFilter:Lorg/graalvm/component/installer/Version$Match;
         1: .line 107
            aload 0 /* this */
            areturn
        end local 1 // org.graalvm.component.installer.Version$Match m
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    2     1     m  Lorg/graalvm/component/installer/Version$Match;
    MethodParameters:
      Name  Flags
      m     

  private org.graalvm.component.installer.ComponentParam latest(java.lang.String, java.util.Collection<org.graalvm.component.installer.model.ComponentInfo>);
    descriptor: (Ljava/lang/String;Ljava/util/Collection;)Lorg/graalvm/component/installer/ComponentParam;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
        start local 1 // java.lang.String s
        start local 2 // java.util.Collection infos
         0: .line 111
            new java.util.ArrayList
            dup
            aload 2 /* infos */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* ordered */
        start local 3 // java.util.List ordered
         1: .line 112
            aload 3 /* ordered */
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
            invokeinterface org.graalvm.component.installer.CommandInput.getLocalRegistry:()Lorg/graalvm/component/installer/model/ComponentRegistry;
            invokevirtual org.graalvm.component.installer.model.ComponentRegistry.getManagementStorage:()Lorg/graalvm/component/installer/model/ManagementStorage;
            invokestatic org.graalvm.component.installer.model.ComponentInfo.reverseVersionComparator:(Lorg/graalvm/component/installer/model/ComponentStorage;)Ljava/util/Comparator;
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         2: .line 113
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
            ldc "n"
            invokeinterface org.graalvm.component.installer.CommandInput.optValue:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 3
            iconst_1
            goto 4
      StackMap locals: java.util.List
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* progress */
        start local 4 // boolean progress
         5: .line 114
            aload 0 /* this */
            aload 1 /* s */
            aload 3 /* ordered */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.component.installer.model.ComponentInfo
            iload 4 /* progress */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.createComponentParam:(Ljava/lang/String;Lorg/graalvm/component/installer/model/ComponentInfo;Z)Lorg/graalvm/component/installer/ComponentParam;
            areturn
        end local 4 // boolean progress
        end local 3 // java.util.List ordered
        end local 2 // java.util.Collection infos
        end local 1 // java.lang.String s
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    6     1         s  Ljava/lang/String;
            0    6     2     infos  Ljava/util/Collection<Lorg/graalvm/component/installer/model/ComponentInfo;>;
            1    6     3   ordered  Ljava/util/List<Lorg/graalvm/component/installer/model/ComponentInfo;>;
            5    6     4  progress  Z
    Signature: (Ljava/lang/String;Ljava/util/Collection<Lorg/graalvm/component/installer/model/ComponentInfo;>;)Lorg/graalvm/component/installer/ComponentParam;
    MethodParameters:
       Name  Flags
      s      
      infos  

  public org.graalvm.component.installer.ComponentParam createParam(java.lang.String, org.graalvm.component.installer.model.ComponentInfo);
    descriptor: (Ljava/lang/String;Lorg/graalvm/component/installer/model/ComponentInfo;)Lorg/graalvm/component/installer/ComponentParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
        start local 1 // java.lang.String cmdString
        start local 2 // org.graalvm.component.installer.model.ComponentInfo info
         0: .line 261
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.input:Lorg/graalvm/component/installer/CommandInput;
            ldc "n"
            invokeinterface org.graalvm.component.installer.CommandInput.optValue:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* progress */
        start local 3 // boolean progress
         3: .line 262
            aload 0 /* this */
            aload 1 /* cmdString */
            aload 2 /* info */
            iload 3 /* progress */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.createComponentParam:(Ljava/lang/String;Lorg/graalvm/component/installer/model/ComponentInfo;Z)Lorg/graalvm/component/installer/ComponentParam;
            areturn
        end local 3 // boolean progress
        end local 2 // org.graalvm.component.installer.model.ComponentInfo info
        end local 1 // java.lang.String cmdString
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    4     1  cmdString  Ljava/lang/String;
            0    4     2       info  Lorg/graalvm/component/installer/model/ComponentInfo;
            3    4     3   progress  Z
    MethodParameters:
           Name  Flags
      cmdString  
      info       

  protected org.graalvm.component.installer.ComponentParam createComponentParam(java.lang.String, org.graalvm.component.installer.model.ComponentInfo, boolean);
    descriptor: (Ljava/lang/String;Lorg/graalvm/component/installer/model/ComponentInfo;Z)Lorg/graalvm/component/installer/ComponentParam;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.graalvm.component.installer.remote.CatalogIterable this
        start local 1 // java.lang.String cmdLineString
        start local 2 // org.graalvm.component.installer.model.ComponentInfo info
        start local 3 // boolean progress
         0: .line 266
            new org.graalvm.component.installer.remote.CatalogIterable$CatalogItemParam
            dup
         1: .line 267
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.getRegistry:()Lorg/graalvm/component/installer/ComponentCatalog;
            invokeinterface org.graalvm.component.installer.ComponentCatalog.getDownloadInterceptor:()Lorg/graalvm/component/installer/ComponentCatalog$DownloadInterceptor;
         2: .line 268
            aload 2 /* info */
         3: .line 269
            aload 2 /* info */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getName:()Ljava/lang/String;
         4: .line 270
            aload 1 /* cmdLineString */
         5: .line 271
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.feedback:Lorg/graalvm/component/installer/Feedback;
            iload 3 /* progress */
         6: .line 266
            invokespecial org.graalvm.component.installer.remote.CatalogIterable$CatalogItemParam.<init>:(Lorg/graalvm/component/installer/ComponentCatalog$DownloadInterceptor;Lorg/graalvm/component/installer/model/ComponentInfo;Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)V
            astore 4 /* param */
        start local 4 // org.graalvm.component.installer.remote.RemoteComponentParam param
         7: .line 272
            aload 4 /* param */
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.CatalogIterable.verifyJars:Z
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.setVerifyJars:(Z)V
         8: .line 273
            aload 4 /* param */
            areturn
        end local 4 // org.graalvm.component.installer.remote.RemoteComponentParam param
        end local 3 // boolean progress
        end local 2 // org.graalvm.component.installer.model.ComponentInfo info
        end local 1 // java.lang.String cmdLineString
        end local 0 // org.graalvm.component.installer.remote.CatalogIterable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/graalvm/component/installer/remote/CatalogIterable;
            0    9     1  cmdLineString  Ljava/lang/String;
            0    9     2           info  Lorg/graalvm/component/installer/model/ComponentInfo;
            0    9     3       progress  Z
            7    9     4          param  Lorg/graalvm/component/installer/remote/RemoteComponentParam;
    MethodParameters:
               Name  Flags
      cmdLineString  
      info           
      progress       
}
SourceFile: "CatalogIterable.java"
NestMembers:
  org.graalvm.component.installer.remote.CatalogIterable$CatalogItemParam  org.graalvm.component.installer.remote.CatalogIterable$It
InnerClasses:
  public abstract CatalogFactory = org.graalvm.component.installer.CommandInput$CatalogFactory of org.graalvm.component.installer.CommandInput
  public abstract DownloadInterceptor = org.graalvm.component.installer.ComponentCatalog$DownloadInterceptor of org.graalvm.component.installer.ComponentCatalog
  public final Match = org.graalvm.component.installer.Version$Match of org.graalvm.component.installer.Version
  public CatalogItemParam = org.graalvm.component.installer.remote.CatalogIterable$CatalogItemParam of org.graalvm.component.installer.remote.CatalogIterable
  private It = org.graalvm.component.installer.remote.CatalogIterable$It of org.graalvm.component.installer.remote.CatalogIterable