public class org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy extends org.apache.lucene.spatial.prefix.PrefixTreeStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy
  super_class: org.apache.lucene.spatial.prefix.PrefixTreeStrategy
{
  protected int prefixGridScanLevel;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected boolean pruneLeafyBranches;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean multiOverlappingIndexedShapes;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 44
            ldc Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree, java.lang.String);
    descriptor: (Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
        start local 2 // java.lang.String fieldName
         0: .line 62
            aload 0 /* this */
            aload 1 /* grid */
            aload 2 /* fieldName */
            invokespecial org.apache.lucene.spatial.prefix.PrefixTreeStrategy.<init>:(Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;Ljava/lang/String;)V
         1: .line 57
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pruneLeafyBranches:Z
         2: .line 59
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.multiOverlappingIndexedShapes:Z
         3: .line 63
            aload 0 /* this */
            aload 1 /* grid */
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getMaxLevels:()I
            iconst_4
            isub
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
         4: .line 64
            return
        end local 2 // java.lang.String fieldName
        end local 1 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    5     1       grid  Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            0    5     2  fieldName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      grid       
      fieldName  

  public int getPrefixGridScanLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
         0: .line 67
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
            ireturn
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;

  public void setPrefixGridScanLevel(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // int prefixGridScanLevel
         0: .line 79
            aload 0 /* this */
            iload 1 /* prefixGridScanLevel */
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
         1: .line 80
            return
        end local 1 // int prefixGridScanLevel
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    2     1  prefixGridScanLevel  I
    MethodParameters:
                     Name  Flags
      prefixGridScanLevel  

  public boolean isMultiOverlappingIndexedShapes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
         0: .line 83
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.multiOverlappingIndexedShapes:Z
            ireturn
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;

  public void setMultiOverlappingIndexedShapes(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // boolean multiOverlappingIndexedShapes
         0: .line 88
            aload 0 /* this */
            iload 1 /* multiOverlappingIndexedShapes */
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.multiOverlappingIndexedShapes:Z
         1: .line 89
            return
        end local 1 // boolean multiOverlappingIndexedShapes
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    2     0                           this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    2     1  multiOverlappingIndexedShapes  Z
    MethodParameters:
                               Name  Flags
      multiOverlappingIndexedShapes  

  public boolean isPruneLeafyBranches();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
         0: .line 92
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pruneLeafyBranches:Z
            ireturn
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;

  public void setPruneLeafyBranches(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // boolean pruneLeafyBranches
         0: .line 107
            aload 0 /* this */
            iload 1 /* pruneLeafyBranches */
            putfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pruneLeafyBranches:Z
         1: .line 108
            return
        end local 1 // boolean pruneLeafyBranches
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    2     1  pruneLeafyBranches  Z
    MethodParameters:
                    Name  Flags
      pruneLeafyBranches  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
         0: .line 112
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            astore 1 /* str */
        start local 1 // java.lang.StringBuilder str
         1: .line 113
            aload 1 /* str */
            ldc "SPG:("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 114
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pointsOnly:Z
            ifeq 4
         3: .line 115
            aload 1 /* str */
            ldc ",pointsOnly"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 116
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pruneLeafyBranches:Z
            ifeq 6
         5: .line 117
            aload 1 /* str */
            ldc ",pruneLeafyBranches"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getMaxLevels:()I
            iconst_4
            isub
            if_icmpeq 8
         7: .line 119
            aload 1 /* str */
            ldc ",prefixGridScanLevel:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         8: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.multiOverlappingIndexedShapes:Z
            ifne 10
         9: .line 121
            aload 1 /* str */
            ldc ",!multiOverlappingIndexedShapes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 122
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder str
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            1   11     1   str  Ljava/lang/StringBuilder;

  protected java.util.Iterator<org.apache.lucene.spatial.prefix.tree.Cell> createCellIteratorToIndex(org.locationtech.spatial4j.shape.Shape, int, java.util.Iterator<org.apache.lucene.spatial.prefix.tree.Cell>);
    descriptor: (Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/Iterator;)Ljava/util/Iterator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.locationtech.spatial4j.shape.Shape shape
        start local 2 // int detailLevel
        start local 3 // java.util.Iterator reuse
         0: .line 127
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.pruneLeafyBranches:Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* shape */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.isGridAlignedShape:(Lorg/locationtech/spatial4j/shape/Shape;)Z
            ifeq 2
         1: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* shape */
            iload 2 /* detailLevel */
            aload 3 /* reuse */
            invokespecial org.apache.lucene.spatial.prefix.PrefixTreeStrategy.createCellIteratorToIndex:(Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/Iterator;)Ljava/util/Iterator;
            areturn
         2: .line 130
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            sipush 4096
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* cells */
        start local 4 // java.util.List cells
         3: .line 131
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getWorldCell:()Lorg/apache/lucene/spatial/prefix/tree/Cell;
            aload 1 /* shape */
            iload 2 /* detailLevel */
            aload 4 /* cells */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.recursiveTraverseAndPrune:(Lorg/apache/lucene/spatial/prefix/tree/Cell;Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/List;)Z
            pop
         4: .line 132
            aload 4 /* cells */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 4 // java.util.List cells
        end local 3 // java.util.Iterator reuse
        end local 2 // int detailLevel
        end local 1 // org.locationtech.spatial4j.shape.Shape shape
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    5     1        shape  Lorg/locationtech/spatial4j/shape/Shape;
            0    5     2  detailLevel  I
            0    5     3        reuse  Ljava/util/Iterator<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
            3    5     4        cells  Ljava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
    Signature: (Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/Iterator<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;)Ljava/util/Iterator<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
    MethodParameters:
             Name  Flags
      shape        
      detailLevel  
      reuse        

  private boolean recursiveTraverseAndPrune(org.apache.lucene.spatial.prefix.tree.Cell, org.locationtech.spatial4j.shape.Shape, int, java.util.List<org.apache.lucene.spatial.prefix.tree.Cell>);
    descriptor: (Lorg/apache/lucene/spatial/prefix/tree/Cell;Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.apache.lucene.spatial.prefix.tree.Cell cell
        start local 2 // org.locationtech.spatial4j.shape.Shape shape
        start local 3 // int detailLevel
        start local 4 // java.util.List result
         0: .line 138
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            iload 3 /* detailLevel */
            if_icmpne 2
         1: .line 139
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.setLeaf:()V
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.isLeaf:()Z
            ifeq 5
         3: .line 142
            aload 4 /* result */
            aload 1 /* cell */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 143
            iconst_1
            ireturn
         5: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            ifeq 7
         6: .line 146
            aload 4 /* result */
            aload 1 /* cell */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 148
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* leaves */
        start local 5 // int leaves
         8: .line 149
            aload 1 /* cell */
            aload 2 /* shape */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getNextLevelCells:(Lorg/locationtech/spatial4j/shape/Shape;)Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
            astore 6 /* subCells */
        start local 6 // org.apache.lucene.spatial.prefix.tree.CellIterator subCells
         9: .line 150
            goto 13
        10: .line 151
      StackMap locals: int org.apache.lucene.spatial.prefix.tree.CellIterator
      StackMap stack:
            aload 6 /* subCells */
            invokevirtual org.apache.lucene.spatial.prefix.tree.CellIterator.next:()Lorg/apache/lucene/spatial/prefix/tree/Cell;
            astore 7 /* subCell */
        start local 7 // org.apache.lucene.spatial.prefix.tree.Cell subCell
        11: .line 152
            aload 0 /* this */
            aload 7 /* subCell */
            aload 2 /* shape */
            iload 3 /* detailLevel */
            aload 4 /* result */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.recursiveTraverseAndPrune:(Lorg/apache/lucene/spatial/prefix/tree/Cell;Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/List;)Z
            ifeq 13
        12: .line 153
            iinc 5 /* leaves */ 1
        end local 7 // org.apache.lucene.spatial.prefix.tree.Cell subCell
        13: .line 150
      StackMap locals:
      StackMap stack:
            aload 6 /* subCells */
            invokevirtual org.apache.lucene.spatial.prefix.tree.CellIterator.hasNext:()Z
            ifne 10
        14: .line 156
            aload 1 /* cell */
            instanceof org.apache.lucene.spatial.prefix.tree.CellCanPrune
            ifne 16
        15: .line 158
            iconst_0
            ireturn
        16: .line 162
      StackMap locals:
      StackMap stack:
            iload 5 /* leaves */
            aload 1 /* cell */
            checkcast org.apache.lucene.spatial.prefix.tree.CellCanPrune
            invokeinterface org.apache.lucene.spatial.prefix.tree.CellCanPrune.getSubCellsSize:()I
            if_icmpne 22
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            ifeq 22
        17: .line 168
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            aload 4 /* result */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        18: .line 169
            iinc 5 /* leaves */ -1
            iload 5 /* leaves */
        19: .line 167
            ifgt 17
        20: .line 171
            aload 1 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.setLeaf:()V
        21: .line 172
            iconst_1
            ireturn
        22: .line 174
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // org.apache.lucene.spatial.prefix.tree.CellIterator subCells
        end local 5 // int leaves
        end local 4 // java.util.List result
        end local 3 // int detailLevel
        end local 2 // org.locationtech.spatial4j.shape.Shape shape
        end local 1 // org.apache.lucene.spatial.prefix.tree.Cell cell
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0   23     1         cell  Lorg/apache/lucene/spatial/prefix/tree/Cell;
            0   23     2        shape  Lorg/locationtech/spatial4j/shape/Shape;
            0   23     3  detailLevel  I
            0   23     4       result  Ljava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
            8   23     5       leaves  I
            9   23     6     subCells  Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
           11   13     7      subCell  Lorg/apache/lucene/spatial/prefix/tree/Cell;
    Signature: (Lorg/apache/lucene/spatial/prefix/tree/Cell;Lorg/locationtech/spatial4j/shape/Shape;ILjava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;)Z
    MethodParameters:
             Name  Flags
      cell         
      shape        
      detailLevel  
      result       

  public org.apache.lucene.search.Query makeQuery(org.apache.lucene.spatial.query.SpatialArgs);
    descriptor: (Lorg/apache/lucene/spatial/query/SpatialArgs;)Lorg/apache/lucene/search/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.apache.lucene.spatial.query.SpatialArgs args
         0: .line 179
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getOperation:()Lorg/apache/lucene/spatial/query/SpatialOperation;
            astore 2 /* op */
        start local 2 // org.apache.lucene.spatial.query.SpatialOperation op
         1: .line 181
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            astore 3 /* shape */
        start local 3 // org.locationtech.spatial4j.shape.Shape shape
         2: .line 182
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            aload 1 /* args */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.ctx:Lorg/locationtech/spatial4j/context/SpatialContext;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.distErrPct:D
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.resolveDistErr:(Lorg/locationtech/spatial4j/context/SpatialContext;D)D
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getLevelForDistance:(D)I
            istore 4 /* detailLevel */
        start local 4 // int detailLevel
         3: .line 184
            aload 2 /* op */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.Intersects:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 9
         4: .line 185
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.isGridAlignedShape:(Lorg/locationtech/spatial4j/shape/Shape;)Z
            ifeq 6
         5: .line 186
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.makeGridShapeIntersectsQuery:(Lorg/locationtech/spatial4j/shape/Shape;)Lorg/apache/lucene/search/Query;
            areturn
         6: .line 188
      StackMap locals: org.apache.lucene.spatial.query.SpatialOperation org.locationtech.spatial4j.shape.Shape int
      StackMap stack:
            new org.apache.lucene.spatial.prefix.IntersectsPrefixTreeQuery
            dup
         7: .line 189
            aload 3 /* shape */
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            iload 4 /* detailLevel */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
         8: .line 188
            invokespecial org.apache.lucene.spatial.prefix.IntersectsPrefixTreeQuery.<init>:(Lorg/locationtech/spatial4j/shape/Shape;Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;II)V
            areturn
         9: .line 190
      StackMap locals:
      StackMap stack:
            aload 2 /* op */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.IsWithin:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 14
        10: .line 191
            new org.apache.lucene.spatial.prefix.WithinPrefixTreeQuery
            dup
        11: .line 192
            aload 3 /* shape */
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            iload 4 /* detailLevel */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.prefixGridScanLevel:I
        12: .line 193
            ldc -1.0
        13: .line 191
            invokespecial org.apache.lucene.spatial.prefix.WithinPrefixTreeQuery.<init>:(Lorg/locationtech/spatial4j/shape/Shape;Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;IID)V
            areturn
        14: .line 194
      StackMap locals:
      StackMap stack:
            aload 2 /* op */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.Contains:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 18
        15: .line 195
            new org.apache.lucene.spatial.prefix.ContainsPrefixTreeQuery
            dup
            aload 3 /* shape */
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            iload 4 /* detailLevel */
        16: .line 196
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.multiOverlappingIndexedShapes:Z
        17: .line 195
            invokespecial org.apache.lucene.spatial.prefix.ContainsPrefixTreeQuery.<init>:(Lorg/locationtech/spatial4j/shape/Shape;Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;IZ)V
            areturn
        18: .line 198
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial.query.UnsupportedSpatialOperation
            dup
            aload 2 /* op */
            invokespecial org.apache.lucene.spatial.query.UnsupportedSpatialOperation.<init>:(Lorg/apache/lucene/spatial/query/SpatialOperation;)V
            athrow
        end local 4 // int detailLevel
        end local 3 // org.locationtech.spatial4j.shape.Shape shape
        end local 2 // org.apache.lucene.spatial.query.SpatialOperation op
        end local 1 // org.apache.lucene.spatial.query.SpatialArgs args
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0   19     1         args  Lorg/apache/lucene/spatial/query/SpatialArgs;
            1   19     2           op  Lorg/apache/lucene/spatial/query/SpatialOperation;
            2   19     3        shape  Lorg/locationtech/spatial4j/shape/Shape;
            3   19     4  detailLevel  I
    MethodParameters:
      Name  Flags
      args  

  protected boolean isGridAlignedShape(org.locationtech.spatial4j.shape.Shape);
    descriptor: (Lorg/locationtech/spatial4j/shape/Shape;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.locationtech.spatial4j.shape.Shape shape
         0: .line 207
            aload 0 /* this */
            aload 1 /* shape */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.isPointShape:(Lorg/locationtech/spatial4j/shape/Shape;)Z
            ireturn
        end local 1 // org.locationtech.spatial4j.shape.Shape shape
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    1     1  shape  Lorg/locationtech/spatial4j/shape/Shape;
    MethodParameters:
       Name  Flags
      shape  

  protected org.apache.lucene.search.Query makeGridShapeIntersectsQuery(org.locationtech.spatial4j.shape.Shape);
    descriptor: (Lorg/locationtech/spatial4j/shape/Shape;)Lorg/apache/lucene/search/Query;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
        start local 1 // org.locationtech.spatial4j.shape.Shape gridShape
         0: .line 212
            getstatic org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* gridShape */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.isGridAlignedShape:(Lorg/locationtech/spatial4j/shape/Shape;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.isPointsOnly:()Z
            ifeq 11
         2: .line 215
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            aload 1 /* gridShape */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getMaxLevels:()I
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getTreeCellIterator:(Lorg/locationtech/spatial4j/shape/Shape;I)Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
            astore 2 /* cellIterator */
        start local 2 // java.util.Iterator cellIterator
         3: .line 217
            aload 2 /* cellIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial.prefix.tree.Cell
            astore 3 /* cell */
        start local 3 // org.apache.lucene.spatial.prefix.tree.Cell cell
         4: .line 218
            goto 8
         5: .line 219
      StackMap locals: java.util.Iterator org.apache.lucene.spatial.prefix.tree.Cell
      StackMap stack:
            aload 3 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            istore 4 /* prevLevel */
        start local 4 // int prevLevel
         6: .line 220
            aload 2 /* cellIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial.prefix.tree.Cell
            astore 3 /* cell */
         7: .line 221
            getstatic org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.$assertionsDisabled:Z
            ifne 8
            iload 4 /* prevLevel */
            aload 3 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getLevel:()I
            if_icmplt 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // int prevLevel
         8: .line 218
      StackMap locals:
      StackMap stack:
            aload 2 /* cellIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 223
            getstatic org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.$assertionsDisabled:Z
            ifne 10
            aload 3 /* cell */
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.isLeaf:()Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 224
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.search.TermQuery
            dup
            new org.apache.lucene.index.Term
            dup
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 3 /* cell */
            aconst_null
            invokeinterface org.apache.lucene.spatial.prefix.tree.Cell.getTokenBytesWithLeaf:(Lorg/apache/lucene/util/BytesRef;)Lorg/apache/lucene/util/BytesRef;
            invokespecial org.apache.lucene.index.Term.<init>:(Ljava/lang/String;Lorg/apache/lucene/util/BytesRef;)V
            invokespecial org.apache.lucene.search.TermQuery.<init>:(Lorg/apache/lucene/index/Term;)V
            areturn
        end local 3 // org.apache.lucene.spatial.prefix.tree.Cell cell
        end local 2 // java.util.Iterator cellIterator
        11: .line 228
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial.prefix.IntersectsPrefixTreeQuery
            dup
        12: .line 229
            aload 1 /* gridShape */
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.grid:Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getGrid:()Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getMaxLevels:()I
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getGrid:()Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            invokevirtual org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getMaxLevels:()I
            iconst_1
            iadd
        13: .line 228
            invokespecial org.apache.lucene.spatial.prefix.IntersectsPrefixTreeQuery.<init>:(Lorg/locationtech/spatial4j/shape/Shape;Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;II)V
            areturn
        end local 1 // org.locationtech.spatial4j.shape.Shape gridShape
        end local 0 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0   14     1     gridShape  Lorg/locationtech/spatial4j/shape/Shape;
            3   11     2  cellIterator  Ljava/util/Iterator<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
            4   11     3          cell  Lorg/apache/lucene/spatial/prefix/tree/Cell;
            6    8     4     prevLevel  I
    MethodParameters:
           Name  Flags
      gridShape  
}
SourceFile: "RecursivePrefixTreeStrategy.java"