public class org.apache.lucene.facet.DrillSideways
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.facet.DrillSideways
  super_class: java.lang.Object
{
  protected final org.apache.lucene.search.IndexSearcher searcher;
    descriptor: Lorg/apache/lucene/search/IndexSearcher;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader;
    descriptor: Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state;
    descriptor: Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.apache.lucene.facet.FacetsConfig config;
    descriptor: Lorg/apache/lucene/facet/FacetsConfig;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.concurrent.ExecutorService executor;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.lucene.search.IndexSearcher, org.apache.lucene.facet.FacetsConfig, org.apache.lucene.facet.taxonomy.TaxonomyReader);
    descriptor: (Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.search.IndexSearcher searcher
        start local 2 // org.apache.lucene.facet.FacetsConfig config
        start local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
         0: .line 99
            aload 0 /* this */
            aload 1 /* searcher */
            aload 2 /* config */
            aload 3 /* taxoReader */
            aconst_null
            invokespecial org.apache.lucene.facet.DrillSideways.<init>:(Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;)V
         1: .line 100
            return
        end local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
        end local 2 // org.apache.lucene.facet.FacetsConfig config
        end local 1 // org.apache.lucene.search.IndexSearcher searcher
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/lucene/facet/DrillSideways;
            0    2     1    searcher  Lorg/apache/lucene/search/IndexSearcher;
            0    2     2      config  Lorg/apache/lucene/facet/FacetsConfig;
            0    2     3  taxoReader  Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
    MethodParameters:
            Name  Flags
      searcher    
      config      
      taxoReader  

  public void <init>(org.apache.lucene.search.IndexSearcher, org.apache.lucene.facet.FacetsConfig, org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState);
    descriptor: (Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.search.IndexSearcher searcher
        start local 2 // org.apache.lucene.facet.FacetsConfig config
        start local 3 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
         0: .line 107
            aload 0 /* this */
            aload 1 /* searcher */
            aload 2 /* config */
            aconst_null
            aload 3 /* state */
            invokespecial org.apache.lucene.facet.DrillSideways.<init>:(Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;)V
         1: .line 108
            return
        end local 3 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
        end local 2 // org.apache.lucene.facet.FacetsConfig config
        end local 1 // org.apache.lucene.search.IndexSearcher searcher
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/lucene/facet/DrillSideways;
            0    2     1  searcher  Lorg/apache/lucene/search/IndexSearcher;
            0    2     2    config  Lorg/apache/lucene/facet/FacetsConfig;
            0    2     3     state  Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
    MethodParameters:
          Name  Flags
      searcher  
      config    
      state     

  public void <init>(org.apache.lucene.search.IndexSearcher, org.apache.lucene.facet.FacetsConfig, org.apache.lucene.facet.taxonomy.TaxonomyReader, org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState);
    descriptor: (Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.search.IndexSearcher searcher
        start local 2 // org.apache.lucene.facet.FacetsConfig config
        start local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
        start local 4 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
         0: .line 118
            aload 0 /* this */
            aload 1 /* searcher */
            aload 2 /* config */
            aload 3 /* taxoReader */
            aload 4 /* state */
            aconst_null
            invokespecial org.apache.lucene.facet.DrillSideways.<init>:(Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;Ljava/util/concurrent/ExecutorService;)V
         1: .line 119
            return
        end local 4 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
        end local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
        end local 2 // org.apache.lucene.facet.FacetsConfig config
        end local 1 // org.apache.lucene.search.IndexSearcher searcher
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/lucene/facet/DrillSideways;
            0    2     1    searcher  Lorg/apache/lucene/search/IndexSearcher;
            0    2     2      config  Lorg/apache/lucene/facet/FacetsConfig;
            0    2     3  taxoReader  Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
            0    2     4       state  Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
    MethodParameters:
            Name  Flags
      searcher    
      config      
      taxoReader  
      state       

  public void <init>(org.apache.lucene.search.IndexSearcher, org.apache.lucene.facet.FacetsConfig, org.apache.lucene.facet.taxonomy.TaxonomyReader, org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState, java.util.concurrent.ExecutorService);
    descriptor: (Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;Ljava/util/concurrent/ExecutorService;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.search.IndexSearcher searcher
        start local 2 // org.apache.lucene.facet.FacetsConfig config
        start local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
        start local 4 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
        start local 5 // java.util.concurrent.ExecutorService executor
         0: .line 129
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 131
            aload 0 /* this */
            aload 1 /* searcher */
            putfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
         2: .line 132
            aload 0 /* this */
            aload 2 /* config */
            putfield org.apache.lucene.facet.DrillSideways.config:Lorg/apache/lucene/facet/FacetsConfig;
         3: .line 133
            aload 0 /* this */
            aload 3 /* taxoReader */
            putfield org.apache.lucene.facet.DrillSideways.taxoReader:Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
         4: .line 134
            aload 0 /* this */
            aload 4 /* state */
            putfield org.apache.lucene.facet.DrillSideways.state:Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
         5: .line 135
            aload 0 /* this */
            aload 5 /* executor */
            putfield org.apache.lucene.facet.DrillSideways.executor:Ljava/util/concurrent/ExecutorService;
         6: .line 136
            return
        end local 5 // java.util.concurrent.ExecutorService executor
        end local 4 // org.apache.lucene.facet.sortedset.SortedSetDocValuesReaderState state
        end local 3 // org.apache.lucene.facet.taxonomy.TaxonomyReader taxoReader
        end local 2 // org.apache.lucene.facet.FacetsConfig config
        end local 1 // org.apache.lucene.search.IndexSearcher searcher
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/apache/lucene/facet/DrillSideways;
            0    7     1    searcher  Lorg/apache/lucene/search/IndexSearcher;
            0    7     2      config  Lorg/apache/lucene/facet/FacetsConfig;
            0    7     3  taxoReader  Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
            0    7     4       state  Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
            0    7     5    executor  Ljava/util/concurrent/ExecutorService;
    MethodParameters:
            Name  Flags
      searcher    
      config      
      taxoReader  
      state       
      executor    

  protected org.apache.lucene.facet.Facets buildFacetsResult(org.apache.lucene.facet.FacetsCollector, org.apache.lucene.facet.FacetsCollector[], java.lang.String[]);
    descriptor: (Lorg/apache/lucene/facet/FacetsCollector;[Lorg/apache/lucene/facet/FacetsCollector;[Ljava/lang/String;)Lorg/apache/lucene/facet/Facets;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.FacetsCollector drillDowns
        start local 2 // org.apache.lucene.facet.FacetsCollector[] drillSideways
        start local 3 // java.lang.String[] drillSidewaysDims
         0: .line 146
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* drillSidewaysFacets */
        start local 5 // java.util.Map drillSidewaysFacets
         1: .line 148
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.taxoReader:Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
            ifnull 12
         2: .line 149
            new org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.taxoReader:Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.config:Lorg/apache/lucene/facet/FacetsConfig;
            aload 1 /* drillDowns */
            invokespecial org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts.<init>:(Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/FacetsCollector;)V
            astore 4 /* drillDownFacets */
        start local 4 // org.apache.lucene.facet.Facets drillDownFacets
         3: .line 150
            aload 2 /* drillSideways */
            ifnull 19
         4: .line 151
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 10
         6: .line 152
      StackMap locals: org.apache.lucene.facet.Facets java.util.Map int
      StackMap stack:
            aload 5 /* drillSidewaysFacets */
            aload 3 /* drillSidewaysDims */
            iload 6 /* i */
            aaload
         7: .line 153
            new org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.taxoReader:Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.config:Lorg/apache/lucene/facet/FacetsConfig;
            aload 2 /* drillSideways */
            iload 6 /* i */
            aaload
            invokespecial org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts.<init>:(Lorg/apache/lucene/facet/taxonomy/TaxonomyReader;Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/facet/FacetsCollector;)V
         8: .line 152
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 151
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            aload 2 /* drillSideways */
            arraylength
            if_icmplt 6
        end local 6 // int i
        11: .line 156
            goto 19
        end local 4 // org.apache.lucene.facet.Facets drillDownFacets
        12: .line 157
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.FacetsCollector org.apache.lucene.facet.FacetsCollector[] java.lang.String[] top java.util.Map
      StackMap stack:
            new org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.state:Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
            aload 1 /* drillDowns */
            invokespecial org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts.<init>:(Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;Lorg/apache/lucene/facet/FacetsCollector;)V
            astore 4 /* drillDownFacets */
        start local 4 // org.apache.lucene.facet.Facets drillDownFacets
        13: .line 158
            aload 2 /* drillSideways */
            ifnull 19
        14: .line 159
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        15: goto 18
        16: .line 160
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.FacetsCollector org.apache.lucene.facet.FacetsCollector[] java.lang.String[] org.apache.lucene.facet.Facets java.util.Map int
      StackMap stack:
            aload 5 /* drillSidewaysFacets */
            aload 3 /* drillSidewaysDims */
            iload 6 /* i */
            aaload
            new org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.state:Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;
            aload 2 /* drillSideways */
            iload 6 /* i */
            aaload
            invokespecial org.apache.lucene.facet.sortedset.SortedSetDocValuesFacetCounts.<init>:(Lorg/apache/lucene/facet/sortedset/SortedSetDocValuesReaderState;Lorg/apache/lucene/facet/FacetsCollector;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 159
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            aload 2 /* drillSideways */
            arraylength
            if_icmplt 16
        end local 6 // int i
        19: .line 165
      StackMap locals:
      StackMap stack:
            aload 5 /* drillSidewaysFacets */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 21
        20: .line 166
            aload 4 /* drillDownFacets */
            areturn
        21: .line 168
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.facet.MultiFacets
            dup
            aload 5 /* drillSidewaysFacets */
            aload 4 /* drillDownFacets */
            invokespecial org.apache.lucene.facet.MultiFacets.<init>:(Ljava/util/Map;Lorg/apache/lucene/facet/Facets;)V
            areturn
        end local 5 // java.util.Map drillSidewaysFacets
        end local 4 // org.apache.lucene.facet.Facets drillDownFacets
        end local 3 // java.lang.String[] drillSidewaysDims
        end local 2 // org.apache.lucene.facet.FacetsCollector[] drillSideways
        end local 1 // org.apache.lucene.facet.FacetsCollector drillDowns
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lorg/apache/lucene/facet/DrillSideways;
            0   22     1           drillDowns  Lorg/apache/lucene/facet/FacetsCollector;
            0   22     2        drillSideways  [Lorg/apache/lucene/facet/FacetsCollector;
            0   22     3    drillSidewaysDims  [Ljava/lang/String;
            3   12     4      drillDownFacets  Lorg/apache/lucene/facet/Facets;
           13   22     4      drillDownFacets  Lorg/apache/lucene/facet/Facets;
            1   22     5  drillSidewaysFacets  Ljava/util/Map<Ljava/lang/String;Lorg/apache/lucene/facet/Facets;>;
            5   11     6                    i  I
           15   19     6                    i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      drillDowns         
      drillSideways      
      drillSidewaysDims  

  public org.apache.lucene.facet.DrillSideways$DrillSidewaysResult search(org.apache.lucene.facet.DrillDownQuery, org.apache.lucene.search.Collector);
    descriptor: (Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/Collector;)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.DrillDownQuery query
        start local 2 // org.apache.lucene.search.Collector hitCollector
         0: .line 178
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDims:()Ljava/util/Map;
            astore 3 /* drillDownDims */
        start local 3 // java.util.Map drillDownDims
         1: .line 180
            new org.apache.lucene.facet.FacetsCollector
            dup
            invokespecial org.apache.lucene.facet.FacetsCollector.<init>:()V
            astore 4 /* drillDownCollector */
        start local 4 // org.apache.lucene.facet.FacetsCollector drillDownCollector
         2: .line 182
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 5
         3: .line 185
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 1 /* query */
            iconst_2
            anewarray org.apache.lucene.search.Collector
            dup
            iconst_0
            aload 2 /* hitCollector */
            aastore
            dup
            iconst_1
            aload 4 /* drillDownCollector */
            aastore
            invokestatic org.apache.lucene.search.MultiCollector.wrap:([Lorg/apache/lucene/search/Collector;)Lorg/apache/lucene/search/Collector;
            invokevirtual org.apache.lucene.search.IndexSearcher.search:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/Collector;)V
         4: .line 186
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 0 /* this */
            aload 4 /* drillDownCollector */
            aconst_null
            aconst_null
            invokevirtual org.apache.lucene.facet.DrillSideways.buildFacetsResult:(Lorg/apache/lucene/facet/FacetsCollector;[Lorg/apache/lucene/facet/FacetsCollector;[Ljava/lang/String;)Lorg/apache/lucene/facet/Facets;
            aconst_null
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
         5: .line 189
      StackMap locals: java.util.Map org.apache.lucene.facet.FacetsCollector
      StackMap stack:
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getBaseQuery:()Lorg/apache/lucene/search/Query;
            astore 5 /* baseQuery */
        start local 5 // org.apache.lucene.search.Query baseQuery
         6: .line 190
            aload 5 /* baseQuery */
            ifnonnull 8
         7: .line 193
            new org.apache.lucene.search.MatchAllDocsQuery
            dup
            invokespecial org.apache.lucene.search.MatchAllDocsQuery.<init>:()V
            astore 5 /* baseQuery */
         8: .line 195
      StackMap locals: org.apache.lucene.search.Query
      StackMap stack:
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDrillDownQueries:()[Lorg/apache/lucene/search/Query;
            astore 6 /* drillDownQueries */
        start local 6 // org.apache.lucene.search.Query[] drillDownQueries
         9: .line 197
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.size:()I
            anewarray org.apache.lucene.facet.FacetsCollector
            astore 7 /* drillSidewaysCollectors */
        start local 7 // org.apache.lucene.facet.FacetsCollector[] drillSidewaysCollectors
        10: .line 198
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        11: goto 14
        12: .line 199
      StackMap locals: org.apache.lucene.search.Query[] org.apache.lucene.facet.FacetsCollector[] int
      StackMap stack:
            aload 7 /* drillSidewaysCollectors */
            iload 8 /* i */
            new org.apache.lucene.facet.FacetsCollector
            dup
            invokespecial org.apache.lucene.facet.FacetsCollector.<init>:()V
            aastore
        13: .line 198
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 8 /* i */
            aload 7 /* drillSidewaysCollectors */
            arraylength
            if_icmplt 12
        end local 8 // int i
        15: .line 203
            new org.apache.lucene.facet.DrillSidewaysQuery
            dup
            aload 5 /* baseQuery */
            aload 4 /* drillDownCollector */
            aload 7 /* drillSidewaysCollectors */
            aload 6 /* drillDownQueries */
        16: .line 204
            aload 0 /* this */
            invokevirtual org.apache.lucene.facet.DrillSideways.scoreSubDocsAtOnce:()Z
        17: .line 203
            invokespecial org.apache.lucene.facet.DrillSidewaysQuery.<init>:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/Collector;[Lorg/apache/lucene/search/Collector;[Lorg/apache/lucene/search/Query;Z)V
        18: .line 202
            astore 8 /* dsq */
        start local 8 // org.apache.lucene.facet.DrillSidewaysQuery dsq
        19: .line 205
            aload 2 /* hitCollector */
            invokeinterface org.apache.lucene.search.Collector.scoreMode:()Lorg/apache/lucene/search/ScoreMode;
            invokevirtual org.apache.lucene.search.ScoreMode.needsScores:()Z
            ifne 21
        20: .line 208
            new org.apache.lucene.facet.DrillSideways$1
            dup
            aload 0 /* this */
            aload 2 /* hitCollector */
            invokespecial org.apache.lucene.facet.DrillSideways$1.<init>:(Lorg/apache/lucene/facet/DrillSideways;Lorg/apache/lucene/search/Collector;)V
            astore 2 /* hitCollector */
        21: .line 215
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.Collector java.util.Map org.apache.lucene.facet.FacetsCollector org.apache.lucene.search.Query org.apache.lucene.search.Query[] org.apache.lucene.facet.FacetsCollector[] org.apache.lucene.facet.DrillSidewaysQuery
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 8 /* dsq */
            aload 2 /* hitCollector */
            invokevirtual org.apache.lucene.search.IndexSearcher.search:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/Collector;)V
        22: .line 217
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 0 /* this */
            aload 4 /* drillDownCollector */
            aload 7 /* drillSidewaysCollectors */
        23: .line 218
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        24: .line 217
            invokevirtual org.apache.lucene.facet.DrillSideways.buildFacetsResult:(Lorg/apache/lucene/facet/FacetsCollector;[Lorg/apache/lucene/facet/FacetsCollector;[Ljava/lang/String;)Lorg/apache/lucene/facet/Facets;
        25: .line 218
            aconst_null
        26: .line 217
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
        end local 8 // org.apache.lucene.facet.DrillSidewaysQuery dsq
        end local 7 // org.apache.lucene.facet.FacetsCollector[] drillSidewaysCollectors
        end local 6 // org.apache.lucene.search.Query[] drillDownQueries
        end local 5 // org.apache.lucene.search.Query baseQuery
        end local 4 // org.apache.lucene.facet.FacetsCollector drillDownCollector
        end local 3 // java.util.Map drillDownDims
        end local 2 // org.apache.lucene.search.Collector hitCollector
        end local 1 // org.apache.lucene.facet.DrillDownQuery query
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   27     0                     this  Lorg/apache/lucene/facet/DrillSideways;
            0   27     1                    query  Lorg/apache/lucene/facet/DrillDownQuery;
            0   27     2             hitCollector  Lorg/apache/lucene/search/Collector;
            1   27     3            drillDownDims  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            2   27     4       drillDownCollector  Lorg/apache/lucene/facet/FacetsCollector;
            6   27     5                baseQuery  Lorg/apache/lucene/search/Query;
            9   27     6         drillDownQueries  [Lorg/apache/lucene/search/Query;
           10   27     7  drillSidewaysCollectors  [Lorg/apache/lucene/facet/FacetsCollector;
           11   15     8                        i  I
           19   27     8                      dsq  Lorg/apache/lucene/facet/DrillSidewaysQuery;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      query         
      hitCollector  

  public org.apache.lucene.facet.DrillSideways$DrillSidewaysResult search(org.apache.lucene.facet.DrillDownQuery, org.apache.lucene.search.Query, org.apache.lucene.search.FieldDoc, int, org.apache.lucene.search.Sort, boolean);
    descriptor: (Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/FieldDoc;ILorg/apache/lucene/search/Sort;Z)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=7
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.DrillDownQuery query
        start local 2 // org.apache.lucene.search.Query filter
        start local 3 // org.apache.lucene.search.FieldDoc after
        start local 4 // int topN
        start local 5 // org.apache.lucene.search.Sort sort
        start local 6 // boolean doDocScores
         0: .line 227
            aload 2 /* filter */
            ifnull 2
         1: .line 228
            new org.apache.lucene.facet.DrillDownQuery
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.config:Lorg/apache/lucene/facet/FacetsConfig;
            aload 2 /* filter */
            aload 1 /* query */
            invokespecial org.apache.lucene.facet.DrillDownQuery.<init>:(Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/search/Query;Lorg/apache/lucene/facet/DrillDownQuery;)V
            astore 1 /* query */
         2: .line 230
      StackMap locals:
      StackMap stack:
            aload 5 /* sort */
            ifnull 22
         3: .line 231
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            invokevirtual org.apache.lucene.search.IndexSearcher.getIndexReader:()Lorg/apache/lucene/index/IndexReader;
            invokevirtual org.apache.lucene.index.IndexReader.maxDoc:()I
            istore 7 /* limit */
        start local 7 // int limit
         4: .line 232
            iload 7 /* limit */
            ifne 6
         5: .line 233
            iconst_1
            istore 7 /* limit */
         6: .line 235
      StackMap locals: int
      StackMap stack:
            iload 4 /* topN */
            iload 7 /* limit */
            invokestatic java.lang.Math.min:(II)I
            istore 8 /* fTopN */
        start local 8 // int fTopN
         7: .line 237
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.executor:Ljava/util/concurrent/ExecutorService;
            ifnull 15
         8: .line 240
            new org.apache.lucene.facet.DrillSideways$2
            dup
            aload 0 /* this */
            aload 5 /* sort */
            iload 8 /* fTopN */
            aload 3 /* after */
            iload 4 /* topN */
            invokespecial org.apache.lucene.facet.DrillSideways$2.<init>:(Lorg/apache/lucene/facet/DrillSideways;Lorg/apache/lucene/search/Sort;ILorg/apache/lucene/search/FieldDoc;I)V
         9: .line 239
            astore 9 /* collectorManager */
        start local 9 // org.apache.lucene.search.CollectorManager collectorManager
        10: .line 257
            aload 0 /* this */
            aload 1 /* query */
            aload 9 /* collectorManager */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/CollectorManager;)Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult;
            astore 10 /* r */
        start local 10 // org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult r
        11: .line 258
            aload 10 /* r */
            getfield org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult.collectorResult:Ljava/lang/Object;
            checkcast org.apache.lucene.search.TopFieldDocs
            astore 11 /* topDocs */
        start local 11 // org.apache.lucene.search.TopFieldDocs topDocs
        12: .line 259
            iload 6 /* doDocScores */
            ifeq 14
        13: .line 260
            aload 11 /* topDocs */
            getfield org.apache.lucene.search.TopFieldDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 1 /* query */
            invokestatic org.apache.lucene.search.TopFieldCollector.populateScores:([Lorg/apache/lucene/search/ScoreDoc;Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/search/Query;)V
        14: .line 262
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.Query org.apache.lucene.search.FieldDoc int org.apache.lucene.search.Sort int int int org.apache.lucene.search.CollectorManager org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult org.apache.lucene.search.TopFieldDocs
      StackMap stack:
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 10 /* r */
            getfield org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult.facets:Lorg/apache/lucene/facet/Facets;
            aload 11 /* topDocs */
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
        end local 11 // org.apache.lucene.search.TopFieldDocs topDocs
        end local 10 // org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult r
        end local 9 // org.apache.lucene.search.CollectorManager collectorManager
        15: .line 267
      StackMap locals:
      StackMap stack:
            aload 5 /* sort */
            iload 8 /* fTopN */
            aload 3 /* after */
            ldc 2147483647
            invokestatic org.apache.lucene.search.TopFieldCollector.create:(Lorg/apache/lucene/search/Sort;ILorg/apache/lucene/search/FieldDoc;I)Lorg/apache/lucene/search/TopFieldCollector;
        16: .line 266
            astore 9 /* hitCollector */
        start local 9 // org.apache.lucene.search.TopFieldCollector hitCollector
        17: .line 268
            aload 0 /* this */
            aload 1 /* query */
            aload 9 /* hitCollector */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/Collector;)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
            astore 10 /* r */
        start local 10 // org.apache.lucene.facet.DrillSideways$DrillSidewaysResult r
        18: .line 269
            aload 9 /* hitCollector */
            invokevirtual org.apache.lucene.search.TopFieldCollector.topDocs:()Lorg/apache/lucene/search/TopFieldDocs;
            astore 11 /* topDocs */
        start local 11 // org.apache.lucene.search.TopFieldDocs topDocs
        19: .line 270
            iload 6 /* doDocScores */
            ifeq 21
        20: .line 271
            aload 11 /* topDocs */
            getfield org.apache.lucene.search.TopFieldDocs.scoreDocs:[Lorg/apache/lucene/search/ScoreDoc;
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 1 /* query */
            invokestatic org.apache.lucene.search.TopFieldCollector.populateScores:([Lorg/apache/lucene/search/ScoreDoc;Lorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/search/Query;)V
        21: .line 273
      StackMap locals: org.apache.lucene.search.TopFieldCollector org.apache.lucene.facet.DrillSideways$DrillSidewaysResult org.apache.lucene.search.TopFieldDocs
      StackMap stack:
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 10 /* r */
            getfield org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.facets:Lorg/apache/lucene/facet/Facets;
            aload 11 /* topDocs */
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
        end local 11 // org.apache.lucene.search.TopFieldDocs topDocs
        end local 10 // org.apache.lucene.facet.DrillSideways$DrillSidewaysResult r
        end local 9 // org.apache.lucene.search.TopFieldCollector hitCollector
        end local 8 // int fTopN
        end local 7 // int limit
        22: .line 276
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.Query org.apache.lucene.search.FieldDoc int org.apache.lucene.search.Sort int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* after */
            aload 1 /* query */
            iload 4 /* topN */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/search/ScoreDoc;Lorg/apache/lucene/facet/DrillDownQuery;I)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
            areturn
        end local 6 // boolean doDocScores
        end local 5 // org.apache.lucene.search.Sort sort
        end local 4 // int topN
        end local 3 // org.apache.lucene.search.FieldDoc after
        end local 2 // org.apache.lucene.search.Query filter
        end local 1 // org.apache.lucene.facet.DrillDownQuery query
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Lorg/apache/lucene/facet/DrillSideways;
            0   23     1             query  Lorg/apache/lucene/facet/DrillDownQuery;
            0   23     2            filter  Lorg/apache/lucene/search/Query;
            0   23     3             after  Lorg/apache/lucene/search/FieldDoc;
            0   23     4              topN  I
            0   23     5              sort  Lorg/apache/lucene/search/Sort;
            0   23     6       doDocScores  Z
            4   22     7             limit  I
            7   22     8             fTopN  I
           10   15     9  collectorManager  Lorg/apache/lucene/search/CollectorManager<Lorg/apache/lucene/search/TopFieldCollector;Lorg/apache/lucene/search/TopFieldDocs;>;
           11   15    10                 r  Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult<Lorg/apache/lucene/search/TopFieldDocs;>;
           12   15    11           topDocs  Lorg/apache/lucene/search/TopFieldDocs;
           17   22     9      hitCollector  Lorg/apache/lucene/search/TopFieldCollector;
           18   22    10                 r  Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
           19   22    11           topDocs  Lorg/apache/lucene/search/TopFieldDocs;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      query        
      filter       
      after        
      topN         
      sort         
      doDocScores  

  public org.apache.lucene.facet.DrillSideways$DrillSidewaysResult search(org.apache.lucene.facet.DrillDownQuery, int);
    descriptor: (Lorg/apache/lucene/facet/DrillDownQuery;I)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.DrillDownQuery query
        start local 2 // int topN
         0: .line 285
            aload 0 /* this */
            aconst_null
            aload 1 /* query */
            iload 2 /* topN */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/search/ScoreDoc;Lorg/apache/lucene/facet/DrillDownQuery;I)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
            areturn
        end local 2 // int topN
        end local 1 // org.apache.lucene.facet.DrillDownQuery query
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/lucene/facet/DrillSideways;
            0    1     1  query  Lorg/apache/lucene/facet/DrillDownQuery;
            0    1     2   topN  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      query  
      topN   

  public org.apache.lucene.facet.DrillSideways$DrillSidewaysResult search(org.apache.lucene.search.ScoreDoc, org.apache.lucene.facet.DrillDownQuery, int);
    descriptor: (Lorg/apache/lucene/search/ScoreDoc;Lorg/apache/lucene/facet/DrillDownQuery;I)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.search.ScoreDoc after
        start local 2 // org.apache.lucene.facet.DrillDownQuery query
        start local 3 // int topN
         0: .line 293
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            invokevirtual org.apache.lucene.search.IndexSearcher.getIndexReader:()Lorg/apache/lucene/index/IndexReader;
            invokevirtual org.apache.lucene.index.IndexReader.maxDoc:()I
            istore 4 /* limit */
        start local 4 // int limit
         1: .line 294
            iload 4 /* limit */
            ifne 3
         2: .line 295
            iconst_1
            istore 4 /* limit */
         3: .line 297
      StackMap locals: int
      StackMap stack:
            iload 3 /* topN */
            iload 4 /* limit */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* fTopN */
        start local 5 // int fTopN
         4: .line 299
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.executor:Ljava/util/concurrent/ExecutorService;
            ifnull 9
         5: .line 302
            new org.apache.lucene.facet.DrillSideways$3
            dup
            aload 0 /* this */
            iload 5 /* fTopN */
            aload 1 /* after */
            iload 3 /* topN */
            invokespecial org.apache.lucene.facet.DrillSideways$3.<init>:(Lorg/apache/lucene/facet/DrillSideways;ILorg/apache/lucene/search/ScoreDoc;I)V
         6: .line 301
            astore 6 /* collectorManager */
        start local 6 // org.apache.lucene.search.CollectorManager collectorManager
         7: .line 319
            aload 0 /* this */
            aload 2 /* query */
            aload 6 /* collectorManager */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/CollectorManager;)Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult;
            astore 7 /* r */
        start local 7 // org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult r
         8: .line 320
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 7 /* r */
            getfield org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult.facets:Lorg/apache/lucene/facet/Facets;
            aload 7 /* r */
            getfield org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult.collectorResult:Ljava/lang/Object;
            checkcast org.apache.lucene.search.TopDocs
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
        end local 7 // org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult r
        end local 6 // org.apache.lucene.search.CollectorManager collectorManager
         9: .line 324
      StackMap locals: int
      StackMap stack:
            iload 3 /* topN */
            aload 1 /* after */
            ldc 2147483647
            invokestatic org.apache.lucene.search.TopScoreDocCollector.create:(ILorg/apache/lucene/search/ScoreDoc;I)Lorg/apache/lucene/search/TopScoreDocCollector;
            astore 6 /* hitCollector */
        start local 6 // org.apache.lucene.search.TopScoreDocCollector hitCollector
        10: .line 325
            aload 0 /* this */
            aload 2 /* query */
            aload 6 /* hitCollector */
            invokevirtual org.apache.lucene.facet.DrillSideways.search:(Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/Collector;)Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
            astore 7 /* r */
        start local 7 // org.apache.lucene.facet.DrillSideways$DrillSidewaysResult r
        11: .line 326
            new org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
            dup
            aload 7 /* r */
            getfield org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.facets:Lorg/apache/lucene/facet/Facets;
            aload 6 /* hitCollector */
            invokevirtual org.apache.lucene.search.TopScoreDocCollector.topDocs:()Lorg/apache/lucene/search/TopDocs;
            invokespecial org.apache.lucene.facet.DrillSideways$DrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;)V
            areturn
        end local 7 // org.apache.lucene.facet.DrillSideways$DrillSidewaysResult r
        end local 6 // org.apache.lucene.search.TopScoreDocCollector hitCollector
        end local 5 // int fTopN
        end local 4 // int limit
        end local 3 // int topN
        end local 2 // org.apache.lucene.facet.DrillDownQuery query
        end local 1 // org.apache.lucene.search.ScoreDoc after
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/apache/lucene/facet/DrillSideways;
            0   12     1             after  Lorg/apache/lucene/search/ScoreDoc;
            0   12     2             query  Lorg/apache/lucene/facet/DrillDownQuery;
            0   12     3              topN  I
            1   12     4             limit  I
            4   12     5             fTopN  I
            7    9     6  collectorManager  Lorg/apache/lucene/search/CollectorManager<Lorg/apache/lucene/search/TopScoreDocCollector;Lorg/apache/lucene/search/TopDocs;>;
            8    9     7                 r  Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult<Lorg/apache/lucene/search/TopDocs;>;
           10   12     6      hitCollector  Lorg/apache/lucene/search/TopScoreDocCollector;
           11   12     7                 r  Lorg/apache/lucene/facet/DrillSideways$DrillSidewaysResult;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      after  
      query  
      topN   

  protected boolean scoreSubDocsAtOnce();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.facet.DrillSideways this
         0: .line 338
            iconst_0
            ireturn
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/facet/DrillSideways;

  private org.apache.lucene.facet.DrillDownQuery getDrillDownQuery(org.apache.lucene.facet.DrillDownQuery, org.apache.lucene.search.Query[], java.lang.String);
    descriptor: (Lorg/apache/lucene/facet/DrillDownQuery;[Lorg/apache/lucene/search/Query;Ljava/lang/String;)Lorg/apache/lucene/facet/DrillDownQuery;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.DrillDownQuery query
        start local 2 // org.apache.lucene.search.Query[] queries
        start local 3 // java.lang.String excludedDimension
         0: .line 398
            new org.apache.lucene.facet.DrillDownQuery
            dup
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.config:Lorg/apache/lucene/facet/FacetsConfig;
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getBaseQuery:()Lorg/apache/lucene/search/Query;
            invokespecial org.apache.lucene.facet.DrillDownQuery.<init>:(Lorg/apache/lucene/facet/FacetsConfig;Lorg/apache/lucene/search/Query;)V
            astore 4 /* ddl */
        start local 4 // org.apache.lucene.facet.DrillDownQuery ddl
         1: .line 399
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDims:()Ljava/util/Map;
            aload 3 /* excludedDimension */
            aload 4 /* ddl */
            aload 2 /* queries */
            invokedynamic accept(Ljava/lang/String;Lorg/apache/lucene/facet/DrillDownQuery;[Lorg/apache/lucene/search/Query;)Ljava/util/function/BiConsumer;
              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;)V
                  org/apache/lucene/facet/DrillSideways.lambda$0(Ljava/lang/String;Lorg/apache/lucene/facet/DrillDownQuery;[Lorg/apache/lucene/search/Query;Ljava/lang/String;Ljava/lang/Integer;)V (6)
                  (Ljava/lang/String;Ljava/lang/Integer;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         2: .line 403
            aload 4 /* ddl */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDims:()Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            aload 2 /* queries */
            arraylength
            if_icmpne 3
            aconst_null
            goto 4
      StackMap locals: org.apache.lucene.facet.DrillDownQuery
      StackMap stack:
         3: aload 4 /* ddl */
      StackMap locals:
      StackMap stack: org.apache.lucene.facet.DrillDownQuery
         4: areturn
        end local 4 // org.apache.lucene.facet.DrillDownQuery ddl
        end local 3 // java.lang.String excludedDimension
        end local 2 // org.apache.lucene.search.Query[] queries
        end local 1 // org.apache.lucene.facet.DrillDownQuery query
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/apache/lucene/facet/DrillSideways;
            0    5     1              query  Lorg/apache/lucene/facet/DrillDownQuery;
            0    5     2            queries  [Lorg/apache/lucene/search/Query;
            0    5     3  excludedDimension  Ljava/lang/String;
            1    5     4                ddl  Lorg/apache/lucene/facet/DrillDownQuery;
    MethodParameters:
                   Name  Flags
      query              final
      queries            
      excludedDimension  final

  public <R> org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult<R> search(org.apache.lucene.facet.DrillDownQuery, org.apache.lucene.search.CollectorManager<?, R>);
    descriptor: (Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/CollectorManager;)Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=13, args_size=3
        start local 0 // org.apache.lucene.facet.DrillSideways this
        start local 1 // org.apache.lucene.facet.DrillDownQuery query
        start local 2 // org.apache.lucene.search.CollectorManager hitCollectorManager
         0: .line 410
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDims:()Ljava/util/Map;
            astore 3 /* drillDownDims */
        start local 3 // java.util.Map drillDownDims
         1: .line 411
            new java.util.ArrayList
            dup
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.size:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* callableCollectors */
        start local 4 // java.util.List callableCollectors
         2: .line 414
            aload 4 /* callableCollectors */
            new org.apache.lucene.facet.DrillSideways$CallableCollector
            dup
            iconst_m1
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 1 /* query */
         3: .line 415
            new org.apache.lucene.search.MultiCollectorManager
            dup
            iconst_2
            anewarray org.apache.lucene.search.CollectorManager
            dup
            iconst_0
            new org.apache.lucene.facet.FacetsCollectorManager
            dup
            invokespecial org.apache.lucene.facet.FacetsCollectorManager.<init>:()V
            aastore
            dup
            iconst_1
            aload 2 /* hitCollectorManager */
            aastore
            invokespecial org.apache.lucene.search.MultiCollectorManager.<init>:([Lorg/apache/lucene/search/CollectorManager;)V
            invokespecial org.apache.lucene.facet.DrillSideways$CallableCollector.<init>:(ILorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/CollectorManager;)V
         4: .line 414
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 416
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: .line 417
            aload 1 /* query */
            invokevirtual org.apache.lucene.facet.DrillDownQuery.getDrillDownQueries:()[Lorg/apache/lucene/search/Query;
            astore 6 /* filters */
        start local 6 // org.apache.lucene.search.Query[] filters
         7: .line 418
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.CollectorManager java.util.Map java.util.List int org.apache.lucene.search.Query[] top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* dim */
        start local 7 // java.lang.String dim
         9: .line 419
            aload 4 /* callableCollectors */
            new org.apache.lucene.facet.DrillSideways$CallableCollector
            dup
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.searcher:Lorg/apache/lucene/search/IndexSearcher;
            aload 0 /* this */
            aload 1 /* query */
            aload 6 /* filters */
            aload 7 /* dim */
            invokevirtual org.apache.lucene.facet.DrillSideways.getDrillDownQuery:(Lorg/apache/lucene/facet/DrillDownQuery;[Lorg/apache/lucene/search/Query;Ljava/lang/String;)Lorg/apache/lucene/facet/DrillDownQuery;
        10: .line 420
            new org.apache.lucene.facet.FacetsCollectorManager
            dup
            invokespecial org.apache.lucene.facet.FacetsCollectorManager.<init>:()V
            invokespecial org.apache.lucene.facet.DrillSideways$CallableCollector.<init>:(ILorg/apache/lucene/search/IndexSearcher;Lorg/apache/lucene/search/Query;Lorg/apache/lucene/search/CollectorManager;)V
        11: .line 419
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String dim
        12: .line 418
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        13: .line 423
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.size:()I
            anewarray org.apache.lucene.facet.FacetsCollector
            astore 8 /* facetsCollectors */
        start local 8 // org.apache.lucene.facet.FacetsCollector[] facetsCollectors
        14: .line 428
            aload 0 /* this */
            getfield org.apache.lucene.facet.DrillSideways.executor:Ljava/util/concurrent/ExecutorService;
            aload 4 /* callableCollectors */
            invokeinterface java.util.concurrent.ExecutorService.invokeAll:(Ljava/util/Collection;)Ljava/util/List;
            astore 10 /* futures */
        start local 10 // java.util.List futures
        15: .line 431
            aload 10 /* futures */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.facet.DrillSideways$CallableResult
            getfield org.apache.lucene.facet.DrillSideways$CallableResult.result:Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 11 /* mainResults */
        start local 11 // java.lang.Object[] mainResults
        16: .line 432
            aload 11 /* mainResults */
            iconst_0
            aaload
            checkcast org.apache.lucene.facet.FacetsCollector
            astore 7 /* mainFacetsCollector */
        start local 7 // org.apache.lucene.facet.FacetsCollector mainFacetsCollector
        17: .line 433
            aload 11 /* mainResults */
            iconst_1
            aaload
            astore 9 /* collectorResult */
        start local 9 // java.lang.Object collectorResult
        18: .line 434
            iconst_1
            istore 5 /* i */
            goto 22
        19: .line 435
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.CollectorManager java.util.Map java.util.List int org.apache.lucene.search.Query[] org.apache.lucene.facet.FacetsCollector org.apache.lucene.facet.FacetsCollector[] java.lang.Object java.util.List java.lang.Object[]
      StackMap stack:
            aload 10 /* futures */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast org.apache.lucene.facet.DrillSideways$CallableResult
            astore 12 /* result */
        start local 12 // org.apache.lucene.facet.DrillSideways$CallableResult result
        20: .line 436
            aload 8 /* facetsCollectors */
            aload 12 /* result */
            getfield org.apache.lucene.facet.DrillSideways$CallableResult.pos:I
            aload 12 /* result */
            getfield org.apache.lucene.facet.DrillSideways$CallableResult.result:Ljava/lang/Object;
            checkcast org.apache.lucene.facet.FacetsCollector
            aastore
        end local 12 // org.apache.lucene.facet.DrillSideways$CallableResult result
        21: .line 434
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* i */
            aload 10 /* futures */
            invokeinterface java.util.List.size:()I
            if_icmplt 19
        23: .line 439
            iconst_0
            istore 5 /* i */
            goto 27
        24: .line 440
      StackMap locals:
      StackMap stack:
            aload 8 /* facetsCollectors */
            iload 5 /* i */
            aaload
            ifnonnull 26
        25: .line 441
            aload 8 /* facetsCollectors */
            iload 5 /* i */
            aload 7 /* mainFacetsCollector */
            aastore
        26: .line 439
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 5 /* i */
            aload 8 /* facetsCollectors */
            arraylength
            if_icmplt 24
        end local 11 // java.lang.Object[] mainResults
        end local 10 // java.util.List futures
        28: .line 443
            goto 33
        end local 9 // java.lang.Object collectorResult
        end local 7 // org.apache.lucene.facet.FacetsCollector mainFacetsCollector
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.CollectorManager java.util.Map java.util.List int org.apache.lucene.search.Query[] top org.apache.lucene.facet.FacetsCollector[]
      StackMap stack: java.lang.InterruptedException
        29: astore 10 /* e */
        start local 10 // java.lang.InterruptedException e
        30: .line 444
            new org.apache.lucene.util.ThreadInterruptedException
            dup
            aload 10 /* e */
            invokespecial org.apache.lucene.util.ThreadInterruptedException.<init>:(Ljava/lang/InterruptedException;)V
            athrow
        end local 10 // java.lang.InterruptedException e
        31: .line 445
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 10 /* e */
        start local 10 // java.util.concurrent.ExecutionException e
        32: .line 446
            new java.lang.RuntimeException
            dup
            aload 10 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.util.concurrent.ExecutionException e
        start local 7 // org.apache.lucene.facet.FacetsCollector mainFacetsCollector
        start local 9 // java.lang.Object collectorResult
        33: .line 450
      StackMap locals: org.apache.lucene.facet.DrillSideways org.apache.lucene.facet.DrillDownQuery org.apache.lucene.search.CollectorManager java.util.Map java.util.List int org.apache.lucene.search.Query[] org.apache.lucene.facet.FacetsCollector org.apache.lucene.facet.FacetsCollector[] java.lang.Object
      StackMap stack:
            new org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult
            dup
            aload 0 /* this */
            aload 7 /* mainFacetsCollector */
            aload 8 /* facetsCollectors */
        34: .line 451
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 3 /* drillDownDims */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        35: .line 450
            invokevirtual org.apache.lucene.facet.DrillSideways.buildFacetsResult:(Lorg/apache/lucene/facet/FacetsCollector;[Lorg/apache/lucene/facet/FacetsCollector;[Ljava/lang/String;)Lorg/apache/lucene/facet/Facets;
        36: .line 451
            aconst_null
            aload 9 /* collectorResult */
        37: .line 450
            invokespecial org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult.<init>:(Lorg/apache/lucene/facet/Facets;Lorg/apache/lucene/search/TopDocs;Ljava/lang/Object;)V
            areturn
        end local 9 // java.lang.Object collectorResult
        end local 8 // org.apache.lucene.facet.FacetsCollector[] facetsCollectors
        end local 7 // org.apache.lucene.facet.FacetsCollector mainFacetsCollector
        end local 6 // org.apache.lucene.search.Query[] filters
        end local 5 // int i
        end local 4 // java.util.List callableCollectors
        end local 3 // java.util.Map drillDownDims
        end local 2 // org.apache.lucene.search.CollectorManager hitCollectorManager
        end local 1 // org.apache.lucene.facet.DrillDownQuery query
        end local 0 // org.apache.lucene.facet.DrillSideways this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                 this  Lorg/apache/lucene/facet/DrillSideways;
            0   38     1                query  Lorg/apache/lucene/facet/DrillDownQuery;
            0   38     2  hitCollectorManager  Lorg/apache/lucene/search/CollectorManager<*TR;>;
            1   38     3        drillDownDims  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            2   38     4   callableCollectors  Ljava/util/List<Lorg/apache/lucene/facet/DrillSideways$CallableCollector;>;
            6   38     5                    i  I
            7   38     6              filters  [Lorg/apache/lucene/search/Query;
            9   12     7                  dim  Ljava/lang/String;
           17   29     7  mainFacetsCollector  Lorg/apache/lucene/facet/FacetsCollector;
           33   38     7  mainFacetsCollector  Lorg/apache/lucene/facet/FacetsCollector;
           14   38     8     facetsCollectors  [Lorg/apache/lucene/facet/FacetsCollector;
           18   29     9      collectorResult  TR;
           33   38     9      collectorResult  TR;
           15   28    10              futures  Ljava/util/List<Ljava/util/concurrent/Future<Lorg/apache/lucene/facet/DrillSideways$CallableResult;>;>;
           16   28    11          mainResults  [Ljava/lang/Object;
           20   21    12               result  Lorg/apache/lucene/facet/DrillSideways$CallableResult;
           30   31    10                    e  Ljava/lang/InterruptedException;
           32   33    10                    e  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
          14    28      29  Class java.lang.InterruptedException
          14    28      31  Class java.util.concurrent.ExecutionException
    Exceptions:
      throws java.io.IOException
    Signature: <R:Ljava/lang/Object;>(Lorg/apache/lucene/facet/DrillDownQuery;Lorg/apache/lucene/search/CollectorManager<*TR;>;)Lorg/apache/lucene/facet/DrillSideways$ConcurrentDrillSidewaysResult<TR;>;
    MethodParameters:
                     Name  Flags
      query                final
      hitCollectorManager  final

  private static void lambda$0(java.lang.String, org.apache.lucene.facet.DrillDownQuery, org.apache.lucene.search.Query[], java.lang.String, java.lang.Integer);
    descriptor: (Ljava/lang/String;Lorg/apache/lucene/facet/DrillDownQuery;[Lorg/apache/lucene/search/Query;Ljava/lang/String;Ljava/lang/Integer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 3 // java.lang.String dim
        start local 4 // java.lang.Integer pos
         0: .line 400
            aload 3 /* dim */
            aload 0
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 401
            aload 1
            aload 3 /* dim */
            aload 2
            aload 4 /* pos */
            invokevirtual java.lang.Integer.intValue:()I
            aaload
            invokevirtual org.apache.lucene.facet.DrillDownQuery.add:(Ljava/lang/String;Lorg/apache/lucene/search/Query;)V
         2: .line 402
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Integer pos
        end local 3 // java.lang.String dim
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     3   dim  Ljava/lang/String;
            0    3     4   pos  Ljava/lang/Integer;
}
SourceFile: "DrillSideways.java"
NestMembers:
  org.apache.lucene.facet.DrillSideways$1  org.apache.lucene.facet.DrillSideways$2  org.apache.lucene.facet.DrillSideways$3  org.apache.lucene.facet.DrillSideways$CallableCollector  org.apache.lucene.facet.DrillSideways$CallableResult  org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult  org.apache.lucene.facet.DrillSideways$DrillSidewaysResult
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.apache.lucene.facet.DrillSideways$1
  org.apache.lucene.facet.DrillSideways$2
  org.apache.lucene.facet.DrillSideways$3
  private CallableCollector = org.apache.lucene.facet.DrillSideways$CallableCollector of org.apache.lucene.facet.DrillSideways
  private CallableResult = org.apache.lucene.facet.DrillSideways$CallableResult of org.apache.lucene.facet.DrillSideways
  public ConcurrentDrillSidewaysResult = org.apache.lucene.facet.DrillSideways$ConcurrentDrillSidewaysResult of org.apache.lucene.facet.DrillSideways
  public DrillSidewaysResult = org.apache.lucene.facet.DrillSideways$DrillSidewaysResult of org.apache.lucene.facet.DrillSideways