public class org.apache.lucene.search.MultiCollector implements org.apache.lucene.search.Collector
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.search.MultiCollector
  super_class: java.lang.Object
{
  private final boolean cacheScores;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.search.Collector[] collectors;
    descriptor: [Lorg/apache/lucene/search/Collector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static org.apache.lucene.search.Collector wrap(org.apache.lucene.search.Collector[]);
    descriptor: ([Lorg/apache/lucene/search/Collector;)Lorg/apache/lucene/search/Collector;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.search.Collector[] collectors
         0: .line 37
            aload 0 /* collectors */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic org.apache.lucene.search.MultiCollector.wrap:(Ljava/lang/Iterable;)Lorg/apache/lucene/search/Collector;
            areturn
        end local 0 // org.apache.lucene.search.Collector[] collectors
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  collectors  [Lorg/apache/lucene/search/Collector;
    MethodParameters:
            Name  Flags
      collectors  

  public static org.apache.lucene.search.Collector wrap(java.lang.Iterable<? extends org.apache.lucene.search.Collector>);
    descriptor: (Ljava/lang/Iterable;)Lorg/apache/lucene/search/Collector;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.Iterable collectors
         0: .line 60
            iconst_0
            istore 1 /* n */
        start local 1 // int n
         1: .line 61
            aload 0 /* collectors */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.lang.Iterable int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.search.Collector
            astore 2 /* c */
        start local 2 // org.apache.lucene.search.Collector c
         3: .line 62
            aload 2 /* c */
            ifnull 5
         4: .line 63
            iinc 1 /* n */ 1
        end local 2 // org.apache.lucene.search.Collector c
         5: .line 61
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 67
            iload 1 /* n */
            ifne 8
         7: .line 68
            new java.lang.IllegalArgumentException
            dup
            ldc "At least 1 collector must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 69
      StackMap locals: java.lang.Iterable int
      StackMap stack:
            iload 1 /* n */
            iconst_1
            if_icmpne 17
         9: .line 71
            aconst_null
            astore 2 /* col */
        start local 2 // org.apache.lucene.search.Collector col
        10: .line 72
            aload 0 /* collectors */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: java.lang.Iterable int org.apache.lucene.search.Collector top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.search.Collector
            astore 3 /* c */
        start local 3 // org.apache.lucene.search.Collector c
        12: .line 73
            aload 3 /* c */
            ifnull 15
        13: .line 74
            aload 3 /* c */
            astore 2 /* col */
        14: .line 75
            goto 16
        end local 3 // org.apache.lucene.search.Collector c
        15: .line 72
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 78
      StackMap locals: java.lang.Iterable int org.apache.lucene.search.Collector
      StackMap stack:
            aload 2 /* col */
            areturn
        end local 2 // org.apache.lucene.search.Collector col
        17: .line 80
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            anewarray org.apache.lucene.search.Collector
            astore 2 /* colls */
        start local 2 // org.apache.lucene.search.Collector[] colls
        18: .line 81
            iconst_0
            istore 1 /* n */
        19: .line 82
            aload 0 /* collectors */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 23
      StackMap locals: java.lang.Iterable int org.apache.lucene.search.Collector[] top java.util.Iterator
      StackMap stack:
        20: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.search.Collector
            astore 3 /* c */
        start local 3 // org.apache.lucene.search.Collector c
        21: .line 83
            aload 3 /* c */
            ifnull 23
        22: .line 84
            aload 2 /* colls */
            iload 1 /* n */
            iinc 1 /* n */ 1
            aload 3 /* c */
            aastore
        end local 3 // org.apache.lucene.search.Collector c
        23: .line 82
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        24: .line 87
            new org.apache.lucene.search.MultiCollector
            dup
            aload 2 /* colls */
            invokespecial org.apache.lucene.search.MultiCollector.<init>:([Lorg/apache/lucene/search/Collector;)V
            areturn
        end local 2 // org.apache.lucene.search.Collector[] colls
        end local 1 // int n
        end local 0 // java.lang.Iterable collectors
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0  collectors  Ljava/lang/Iterable<+Lorg/apache/lucene/search/Collector;>;
            1   25     1           n  I
            3    5     2           c  Lorg/apache/lucene/search/Collector;
           10   17     2         col  Lorg/apache/lucene/search/Collector;
           12   15     3           c  Lorg/apache/lucene/search/Collector;
           18   25     2       colls  [Lorg/apache/lucene/search/Collector;
           21   23     3           c  Lorg/apache/lucene/search/Collector;
    Signature: (Ljava/lang/Iterable<+Lorg/apache/lucene/search/Collector;>;)Lorg/apache/lucene/search/Collector;
    MethodParameters:
            Name  Flags
      collectors  

  private void <init>(org.apache.lucene.search.Collector[]);
    descriptor: ([Lorg/apache/lucene/search/Collector;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.apache.lucene.search.MultiCollector this
        start local 1 // org.apache.lucene.search.Collector[] collectors
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            aload 0 /* this */
            aload 1 /* collectors */
            putfield org.apache.lucene.search.MultiCollector.collectors:[Lorg/apache/lucene/search/Collector;
         2: .line 96
            iconst_0
            istore 2 /* numNeedsScores */
        start local 2 // int numNeedsScores
         3: .line 97
            aload 1 /* collectors */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.Collector[] int top int int org.apache.lucene.search.Collector[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* collector */
        start local 3 // org.apache.lucene.search.Collector collector
         5: .line 98
            aload 3 /* collector */
            invokeinterface org.apache.lucene.search.Collector.scoreMode:()Lorg/apache/lucene/search/ScoreMode;
            invokevirtual org.apache.lucene.search.ScoreMode.needsScores:()Z
            ifeq 7
         6: .line 99
            iinc 2 /* numNeedsScores */ 1
        end local 3 // org.apache.lucene.search.Collector collector
         7: .line 97
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 4
         9: .line 102
            aload 0 /* this */
            iload 2 /* numNeedsScores */
            iconst_2
            if_icmplt 10
            iconst_1
            goto 11
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.Collector[] int
      StackMap stack: org.apache.lucene.search.MultiCollector
        10: iconst_0
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.Collector[] int
      StackMap stack: org.apache.lucene.search.MultiCollector int
        11: putfield org.apache.lucene.search.MultiCollector.cacheScores:Z
        12: .line 103
            return
        end local 2 // int numNeedsScores
        end local 1 // org.apache.lucene.search.Collector[] collectors
        end local 0 // org.apache.lucene.search.MultiCollector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/apache/lucene/search/MultiCollector;
            0   13     1      collectors  [Lorg/apache/lucene/search/Collector;
            3   13     2  numNeedsScores  I
            5    7     3       collector  Lorg/apache/lucene/search/Collector;
    MethodParameters:
            Name  Flags
      collectors  

  public org.apache.lucene.search.ScoreMode scoreMode();
    descriptor: ()Lorg/apache/lucene/search/ScoreMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.apache.lucene.search.MultiCollector this
         0: .line 107
            aconst_null
            astore 1 /* scoreMode */
        start local 1 // org.apache.lucene.search.ScoreMode scoreMode
         1: .line 108
            aload 0 /* this */
            getfield org.apache.lucene.search.MultiCollector.collectors:[Lorg/apache/lucene/search/Collector;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.ScoreMode top int int org.apache.lucene.search.Collector[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* collector */
        start local 2 // org.apache.lucene.search.Collector collector
         3: .line 109
            aload 1 /* scoreMode */
            ifnonnull 6
         4: .line 110
            aload 2 /* collector */
            invokeinterface org.apache.lucene.search.Collector.scoreMode:()Lorg/apache/lucene/search/ScoreMode;
            astore 1 /* scoreMode */
         5: .line 111
            goto 8
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.ScoreMode org.apache.lucene.search.Collector int int org.apache.lucene.search.Collector[]
      StackMap stack:
         6: aload 1 /* scoreMode */
            aload 2 /* collector */
            invokeinterface org.apache.lucene.search.Collector.scoreMode:()Lorg/apache/lucene/search/ScoreMode;
            if_acmpeq 8
         7: .line 112
            getstatic org.apache.lucene.search.ScoreMode.COMPLETE:Lorg/apache/lucene/search/ScoreMode;
            areturn
        end local 2 // org.apache.lucene.search.Collector collector
         8: .line 108
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.search.ScoreMode top int int org.apache.lucene.search.Collector[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 2
        10: .line 115
            aload 1 /* scoreMode */
            areturn
        end local 1 // org.apache.lucene.search.ScoreMode scoreMode
        end local 0 // org.apache.lucene.search.MultiCollector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/apache/lucene/search/MultiCollector;
            1   11     1  scoreMode  Lorg/apache/lucene/search/ScoreMode;
            3    8     2  collector  Lorg/apache/lucene/search/Collector;

  public org.apache.lucene.search.LeafCollector getLeafCollector(org.apache.lucene.index.LeafReaderContext);
    descriptor: (Lorg/apache/lucene/index/LeafReaderContext;)Lorg/apache/lucene/search/LeafCollector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.apache.lucene.search.MultiCollector this
        start local 1 // org.apache.lucene.index.LeafReaderContext context
         0: .line 120
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.lucene.search.MultiCollector.collectors:[Lorg/apache/lucene/search/Collector;
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* leafCollectors */
        start local 2 // java.util.List leafCollectors
         1: .line 121
            aload 0 /* this */
            getfield org.apache.lucene.search.MultiCollector.collectors:[Lorg/apache/lucene/search/Collector;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List top int int org.apache.lucene.search.Collector[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* collector */
        start local 3 // org.apache.lucene.search.Collector collector
         3: .line 124
            aload 3 /* collector */
            aload 1 /* context */
            invokeinterface org.apache.lucene.search.Collector.getLeafCollector:(Lorg/apache/lucene/index/LeafReaderContext;)Lorg/apache/lucene/search/LeafCollector;
            astore 7 /* leafCollector */
        start local 7 // org.apache.lucene.search.LeafCollector leafCollector
         4: .line 125
            goto 7
        end local 7 // org.apache.lucene.search.LeafCollector leafCollector
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List org.apache.lucene.search.Collector int int org.apache.lucene.search.Collector[]
      StackMap stack: org.apache.lucene.search.CollectionTerminatedException
         5: pop
         6: .line 127
            goto 8
        start local 7 // org.apache.lucene.search.LeafCollector leafCollector
         7: .line 129
      StackMap locals: org.apache.lucene.search.LeafCollector
      StackMap stack:
            aload 2 /* leafCollectors */
            aload 7 /* leafCollector */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.lucene.search.LeafCollector leafCollector
        end local 3 // org.apache.lucene.search.Collector collector
         8: .line 121
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List top int int org.apache.lucene.search.Collector[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 2
        10: .line 131
            aload 2 /* leafCollectors */
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 11
                    1: 12
              default: 13
          }
        11: .line 133
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List
      StackMap stack:
            new org.apache.lucene.search.CollectionTerminatedException
            dup
            invokespecial org.apache.lucene.search.CollectionTerminatedException.<init>:()V
            athrow
        12: .line 135
      StackMap locals:
      StackMap stack:
            aload 2 /* leafCollectors */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.search.LeafCollector
            areturn
        13: .line 137
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.search.MultiCollector$MultiLeafCollector
            dup
            aload 2 /* leafCollectors */
            aload 0 /* this */
            getfield org.apache.lucene.search.MultiCollector.cacheScores:Z
            aload 0 /* this */
            invokevirtual org.apache.lucene.search.MultiCollector.scoreMode:()Lorg/apache/lucene/search/ScoreMode;
            getstatic org.apache.lucene.search.ScoreMode.TOP_SCORES:Lorg/apache/lucene/search/ScoreMode;
            if_acmpne 14
            iconst_1
            goto 15
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List
      StackMap stack: new 13 new 13 java.util.List int
        14: iconst_0
      StackMap locals: org.apache.lucene.search.MultiCollector org.apache.lucene.index.LeafReaderContext java.util.List
      StackMap stack: new 13 new 13 java.util.List int int
        15: invokespecial org.apache.lucene.search.MultiCollector$MultiLeafCollector.<init>:(Ljava/util/List;ZZ)V
            areturn
        end local 2 // java.util.List leafCollectors
        end local 1 // org.apache.lucene.index.LeafReaderContext context
        end local 0 // org.apache.lucene.search.MultiCollector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lorg/apache/lucene/search/MultiCollector;
            0   16     1         context  Lorg/apache/lucene/index/LeafReaderContext;
            1   16     2  leafCollectors  Ljava/util/List<Lorg/apache/lucene/search/LeafCollector;>;
            3    8     3       collector  Lorg/apache/lucene/search/Collector;
            4    5     7   leafCollector  Lorg/apache/lucene/search/LeafCollector;
            7    8     7   leafCollector  Lorg/apache/lucene/search/LeafCollector;
      Exception table:
        from    to  target  type
           3     4       5  Class org.apache.lucene.search.CollectionTerminatedException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "MultiCollector.java"
NestMembers:
  org.apache.lucene.search.MultiCollector$MinCompetitiveScoreAwareScorable  org.apache.lucene.search.MultiCollector$MultiLeafCollector  org.apache.lucene.search.MultiCollector$MultiLeafCollector$1
InnerClasses:
  final MinCompetitiveScoreAwareScorable = org.apache.lucene.search.MultiCollector$MinCompetitiveScoreAwareScorable of org.apache.lucene.search.MultiCollector
  private MultiLeafCollector = org.apache.lucene.search.MultiCollector$MultiLeafCollector of org.apache.lucene.search.MultiCollector