public class org.apache.lucene.spatial.composite.CompositeSpatialStrategy extends org.apache.lucene.spatial.SpatialStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial.composite.CompositeSpatialStrategy
  super_class: org.apache.lucene.spatial.SpatialStrategy
{
  private final org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy indexStrategy;
    descriptor: Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial.serialized.SerializedDVStrategy geometryStrategy;
    descriptor: Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(java.lang.String, org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy, org.apache.lucene.spatial.serialized.SerializedDVStrategy);
    descriptor: (Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
        start local 1 // java.lang.String fieldName
        start local 2 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy indexStrategy
        start local 3 // org.apache.lucene.spatial.serialized.SerializedDVStrategy geometryStrategy
         0: .line 57
            aload 0 /* this */
            aload 2 /* indexStrategy */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getSpatialContext:()Lorg/locationtech/spatial4j/context/SpatialContext;
            aload 1 /* fieldName */
            invokespecial org.apache.lucene.spatial.SpatialStrategy.<init>:(Lorg/locationtech/spatial4j/context/SpatialContext;Ljava/lang/String;)V
         1: .line 53
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.optimizePredicates:Z
         2: .line 58
            aload 0 /* this */
            aload 2 /* indexStrategy */
            putfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
         3: .line 59
            aload 0 /* this */
            aload 3 /* geometryStrategy */
            putfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.geometryStrategy:Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
         4: .line 60
            return
        end local 3 // org.apache.lucene.spatial.serialized.SerializedDVStrategy geometryStrategy
        end local 2 // org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy indexStrategy
        end local 1 // java.lang.String fieldName
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;
            0    5     1         fieldName  Ljava/lang/String;
            0    5     2     indexStrategy  Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            0    5     3  geometryStrategy  Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
    MethodParameters:
                  Name  Flags
      fieldName         
      indexStrategy     
      geometryStrategy  

  public org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy getIndexStrategy();
    descriptor: ()Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
         0: .line 63
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            areturn
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;

  public org.apache.lucene.spatial.serialized.SerializedDVStrategy getGeometryStrategy();
    descriptor: ()Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
         0: .line 67
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.geometryStrategy:Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
            areturn
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;

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

  public void setOptimizePredicates(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
        start local 1 // boolean optimizePredicates
         0: .line 77
            aload 0 /* this */
            iload 1 /* optimizePredicates */
            putfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.optimizePredicates:Z
         1: .line 78
            return
        end local 1 // boolean optimizePredicates
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;
            0    2     1  optimizePredicates  Z
    MethodParameters:
                    Name  Flags
      optimizePredicates  

  public org.apache.lucene.document.Field[] createIndexableFields(org.locationtech.spatial4j.shape.Shape);
    descriptor: (Lorg/locationtech/spatial4j/shape/Shape;)[Lorg/apache/lucene/document/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
        start local 1 // org.locationtech.spatial4j.shape.Shape shape
         0: .line 82
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* fields */
        start local 2 // java.util.List fields
         1: .line 83
            aload 2 /* fields */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            aload 1 /* shape */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.createIndexableFields:(Lorg/locationtech/spatial4j/shape/Shape;)[Lorg/apache/lucene/document/Field;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         2: .line 84
            aload 2 /* fields */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.geometryStrategy:Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
            aload 1 /* shape */
            invokevirtual org.apache.lucene.spatial.serialized.SerializedDVStrategy.createIndexableFields:(Lorg/locationtech/spatial4j/shape/Shape;)[Lorg/apache/lucene/document/Field;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         3: .line 85
            aload 2 /* fields */
            aload 2 /* fields */
            invokeinterface java.util.List.size:()I
            anewarray org.apache.lucene.document.Field
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.lucene.document.Field[]
            areturn
        end local 2 // java.util.List fields
        end local 1 // org.locationtech.spatial4j.shape.Shape shape
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;
            0    4     1   shape  Lorg/locationtech/spatial4j/shape/Shape;
            1    4     2  fields  Ljava/util/List<Lorg/apache/lucene/document/Field;>;
    MethodParameters:
       Name  Flags
      shape  

  public org.apache.lucene.search.DoubleValuesSource makeDistanceValueSource(org.locationtech.spatial4j.shape.Point, double);
    descriptor: (Lorg/locationtech/spatial4j/shape/Point;D)Lorg/apache/lucene/search/DoubleValuesSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
        start local 1 // org.locationtech.spatial4j.shape.Point queryPoint
        start local 2 // double multiplier
         0: .line 92
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 2 // double multiplier
        end local 1 // org.locationtech.spatial4j.shape.Point queryPoint
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;
            0    1     1  queryPoint  Lorg/locationtech/spatial4j/shape/Point;
            0    1     2  multiplier  D
    MethodParameters:
            Name  Flags
      queryPoint  
      multiplier  

  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=8, locals=6, args_size=2
        start local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
        start local 1 // org.apache.lucene.spatial.query.SpatialArgs args
         0: .line 97
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getOperation:()Lorg/apache/lucene/spatial/query/SpatialOperation;
            astore 2 /* pred */
        start local 2 // org.apache.lucene.spatial.query.SpatialOperation pred
         1: .line 99
            aload 2 /* pred */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.BBoxIntersects:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpeq 2
            aload 2 /* pred */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.BBoxWithin:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 3
         2: .line 100
      StackMap locals: org.apache.lucene.spatial.query.SpatialOperation
      StackMap stack:
            new org.apache.lucene.spatial.query.UnsupportedSpatialOperation
            dup
            aload 2 /* pred */
            invokespecial org.apache.lucene.spatial.query.UnsupportedSpatialOperation.<init>:(Lorg/apache/lucene/spatial/query/SpatialOperation;)V
            athrow
         3: .line 103
      StackMap locals:
      StackMap stack:
            aload 2 /* pred */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.IsDisjointTo:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 5
         4: .line 108
            new org.apache.lucene.spatial.query.UnsupportedSpatialOperation
            dup
            aload 2 /* pred */
            invokespecial org.apache.lucene.spatial.query.UnsupportedSpatialOperation.<init>:(Lorg/apache/lucene/spatial/query/SpatialOperation;)V
            athrow
         5: .line 112
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial.util.ShapeValuesPredicate
            dup
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.geometryStrategy:Lorg/apache/lucene/spatial/serialized/SerializedDVStrategy;
            invokevirtual org.apache.lucene.spatial.serialized.SerializedDVStrategy.makeShapeValueSource:()Lorg/apache/lucene/spatial/ShapeValuesSource;
            aload 2 /* pred */
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            invokespecial org.apache.lucene.spatial.util.ShapeValuesPredicate.<init>:(Lorg/apache/lucene/spatial/ShapeValuesSource;Lorg/apache/lucene/spatial/query/SpatialOperation;Lorg/locationtech/spatial4j/shape/Shape;)V
         6: .line 111
            astore 3 /* predicateValueSource */
        start local 3 // org.apache.lucene.spatial.util.ShapeValuesPredicate predicateValueSource
         7: .line 114
            aload 2 /* pred */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.Intersects:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 13
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.optimizePredicates:Z
            ifeq 13
         8: .line 117
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getGrid:()Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
            astore 4 /* grid */
        start local 4 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
         9: .line 118
            aload 4 /* grid */
            aload 1 /* args */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.ctx:Lorg/locationtech/spatial4j/context/SpatialContext;
            dconst_0
            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 5 /* detailLevel */
        start local 5 // int detailLevel
        10: .line 119
            new org.apache.lucene.spatial.composite.IntersectsRPTVerifyQuery
            dup
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getFieldName:()Ljava/lang/String;
            aload 4 /* grid */
        11: .line 120
            iload 5 /* detailLevel */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.getPrefixGridScanLevel:()I
            aload 3 /* predicateValueSource */
        12: .line 119
            invokespecial org.apache.lucene.spatial.composite.IntersectsRPTVerifyQuery.<init>:(Lorg/locationtech/spatial4j/shape/Shape;Ljava/lang/String;Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;IILorg/apache/lucene/spatial/util/ShapeValuesPredicate;)V
            areturn
        end local 5 // int detailLevel
        end local 4 // org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree grid
        13: .line 125
      StackMap locals: org.apache.lucene.spatial.util.ShapeValuesPredicate
      StackMap stack:
            aload 2 /* pred */
            getstatic org.apache.lucene.spatial.query.SpatialOperation.Contains:Lorg/apache/lucene/spatial/query/SpatialOperation;
            if_acmpne 16
        14: .line 127
            aload 1 /* args */
            astore 4 /* indexArgs */
        start local 4 // org.apache.lucene.spatial.query.SpatialArgs indexArgs
        15: .line 128
            goto 19
        end local 4 // org.apache.lucene.spatial.query.SpatialArgs indexArgs
        16: .line 130
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial.query.SpatialArgs
            dup
            getstatic org.apache.lucene.spatial.query.SpatialOperation.Intersects:Lorg/apache/lucene/spatial/query/SpatialOperation;
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getShape:()Lorg/locationtech/spatial4j/shape/Shape;
            invokespecial org.apache.lucene.spatial.query.SpatialArgs.<init>:(Lorg/apache/lucene/spatial/query/SpatialOperation;Lorg/locationtech/spatial4j/shape/Shape;)V
            astore 4 /* indexArgs */
        start local 4 // org.apache.lucene.spatial.query.SpatialArgs indexArgs
        17: .line 131
            aload 4 /* indexArgs */
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getDistErr:()Ljava/lang/Double;
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.setDistErr:(Ljava/lang/Double;)V
        18: .line 132
            aload 4 /* indexArgs */
            aload 1 /* args */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getDistErrPct:()Ljava/lang/Double;
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.setDistErrPct:(Ljava/lang/Double;)V
        19: .line 135
      StackMap locals: org.apache.lucene.spatial.query.SpatialArgs
      StackMap stack:
            aload 4 /* indexArgs */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getDistErr:()Ljava/lang/Double;
            ifnonnull 21
            aload 4 /* indexArgs */
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.getDistErrPct:()Ljava/lang/Double;
            ifnonnull 21
        20: .line 136
            aload 4 /* indexArgs */
            ldc 0.1
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual org.apache.lucene.spatial.query.SpatialArgs.setDistErrPct:(Ljava/lang/Double;)V
        21: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.composite.CompositeSpatialStrategy.indexStrategy:Lorg/apache/lucene/spatial/prefix/RecursivePrefixTreeStrategy;
            aload 4 /* indexArgs */
            invokevirtual org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy.makeQuery:(Lorg/apache/lucene/spatial/query/SpatialArgs;)Lorg/apache/lucene/search/Query;
            astore 5 /* indexQuery */
        start local 5 // org.apache.lucene.search.Query indexQuery
        22: .line 140
            new org.apache.lucene.spatial.composite.CompositeVerifyQuery
            dup
            aload 5 /* indexQuery */
            aload 3 /* predicateValueSource */
            invokespecial org.apache.lucene.spatial.composite.CompositeVerifyQuery.<init>:(Lorg/apache/lucene/search/Query;Lorg/apache/lucene/spatial/util/ShapeValuesPredicate;)V
            areturn
        end local 5 // org.apache.lucene.search.Query indexQuery
        end local 4 // org.apache.lucene.spatial.query.SpatialArgs indexArgs
        end local 3 // org.apache.lucene.spatial.util.ShapeValuesPredicate predicateValueSource
        end local 2 // org.apache.lucene.spatial.query.SpatialOperation pred
        end local 1 // org.apache.lucene.spatial.query.SpatialArgs args
        end local 0 // org.apache.lucene.spatial.composite.CompositeSpatialStrategy this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0                  this  Lorg/apache/lucene/spatial/composite/CompositeSpatialStrategy;
            0   23     1                  args  Lorg/apache/lucene/spatial/query/SpatialArgs;
            1   23     2                  pred  Lorg/apache/lucene/spatial/query/SpatialOperation;
            7   23     3  predicateValueSource  Lorg/apache/lucene/spatial/util/ShapeValuesPredicate;
            9   13     4                  grid  Lorg/apache/lucene/spatial/prefix/tree/SpatialPrefixTree;
           10   13     5           detailLevel  I
           15   16     4             indexArgs  Lorg/apache/lucene/spatial/query/SpatialArgs;
           17   23     4             indexArgs  Lorg/apache/lucene/spatial/query/SpatialArgs;
           22   23     5            indexQuery  Lorg/apache/lucene/search/Query;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "CompositeSpatialStrategy.java"