class org.apache.cassandra.service.StorageProxy$RangeIterator extends org.apache.cassandra.utils.AbstractIterator<org.apache.cassandra.service.StorageProxy$RangeForQuery>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.service.StorageProxy$RangeIterator
  super_class: org.apache.cassandra.utils.AbstractIterator
{
  private final org.apache.cassandra.db.Keyspace keyspace;
    descriptor: Lorg/apache/cassandra/db/Keyspace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.db.ConsistencyLevel consistency;
    descriptor: Lorg/apache/cassandra/db/ConsistencyLevel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Iterator<? extends org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.db.PartitionPosition>> ranges;
    descriptor: Ljava/util/Iterator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Iterator<+Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;>;

  private final int rangeCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.cassandra.db.PartitionRangeReadCommand, org.apache.cassandra.db.Keyspace, org.apache.cassandra.db.ConsistencyLevel);
    descriptor: (Lorg/apache/cassandra/db/PartitionRangeReadCommand;Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ConsistencyLevel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
        start local 1 // org.apache.cassandra.db.PartitionRangeReadCommand command
        start local 2 // org.apache.cassandra.db.Keyspace keyspace
        start local 3 // org.apache.cassandra.db.ConsistencyLevel consistency
         0: .line 1969
            aload 0 /* this */
            invokespecial org.apache.cassandra.utils.AbstractIterator.<init>:()V
         1: .line 1971
            aload 0 /* this */
            aload 2 /* keyspace */
            putfield org.apache.cassandra.service.StorageProxy$RangeIterator.keyspace:Lorg/apache/cassandra/db/Keyspace;
         2: .line 1972
            aload 0 /* this */
            aload 3 /* consistency */
            putfield org.apache.cassandra.service.StorageProxy$RangeIterator.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
         3: .line 1974
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            instanceof org.apache.cassandra.locator.LocalStrategy
            ifeq 5
         4: .line 1975
            aload 1 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.dataRange:()Lorg/apache/cassandra/db/DataRange;
            invokevirtual org.apache.cassandra.db.DataRange.keyRange:()Lorg/apache/cassandra/dht/AbstractBounds;
            invokevirtual org.apache.cassandra.dht.AbstractBounds.unwrap:()Ljava/util/List;
            goto 6
         5: .line 1976
      StackMap locals: org.apache.cassandra.service.StorageProxy$RangeIterator org.apache.cassandra.db.PartitionRangeReadCommand org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ConsistencyLevel
      StackMap stack:
            aload 1 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.dataRange:()Lorg/apache/cassandra/db/DataRange;
            invokevirtual org.apache.cassandra.db.DataRange.keyRange:()Lorg/apache/cassandra/dht/AbstractBounds;
            invokestatic org.apache.cassandra.service.StorageProxy.getRestrictedRanges:(Lorg/apache/cassandra/dht/AbstractBounds;)Ljava/util/List;
         6: .line 1974
      StackMap locals:
      StackMap stack: java.util.List
            astore 4 /* l */
        start local 4 // java.util.List l
         7: .line 1977
            aload 0 /* this */
            aload 4 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            putfield org.apache.cassandra.service.StorageProxy$RangeIterator.ranges:Ljava/util/Iterator;
         8: .line 1978
            aload 0 /* this */
            aload 4 /* l */
            invokeinterface java.util.List.size:()I
            putfield org.apache.cassandra.service.StorageProxy$RangeIterator.rangeCount:I
         9: .line 1979
            return
        end local 4 // java.util.List l
        end local 3 // org.apache.cassandra.db.ConsistencyLevel consistency
        end local 2 // org.apache.cassandra.db.Keyspace keyspace
        end local 1 // org.apache.cassandra.db.PartitionRangeReadCommand command
        end local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/cassandra/service/StorageProxy$RangeIterator;
            0   10     1      command  Lorg/apache/cassandra/db/PartitionRangeReadCommand;
            0   10     2     keyspace  Lorg/apache/cassandra/db/Keyspace;
            0   10     3  consistency  Lorg/apache/cassandra/db/ConsistencyLevel;
            7   10     4            l  Ljava/util/List<+Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;>;
    MethodParameters:
             Name  Flags
      command      
      keyspace     
      consistency  

  public int rangeCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
         0: .line 1983
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.rangeCount:I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy$RangeIterator;

  protected org.apache.cassandra.service.StorageProxy$RangeForQuery computeNext();
    descriptor: ()Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
         0: .line 1988
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.ranges:Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         1: .line 1989
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageProxy$RangeIterator.endOfData:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.StorageProxy$RangeForQuery
            areturn
         2: .line 1991
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.ranges:Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.AbstractBounds
            astore 1 /* range */
        start local 1 // org.apache.cassandra.dht.AbstractBounds range
         3: .line 1992
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.keyspace:Lorg/apache/cassandra/db/Keyspace;
            aload 1 /* range */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            invokestatic org.apache.cassandra.service.StorageProxy.getLiveSortedEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 2 /* liveEndpoints */
        start local 2 // java.util.List liveEndpoints
         4: .line 1993
            new org.apache.cassandra.service.StorageProxy$RangeForQuery
            dup
            aload 1 /* range */
         5: .line 1994
            aload 2 /* liveEndpoints */
         6: .line 1995
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageProxy$RangeIterator.keyspace:Lorg/apache/cassandra/db/Keyspace;
            aload 2 /* liveEndpoints */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.filterForQuery:(Lorg/apache/cassandra/db/Keyspace;Ljava/util/List;)Ljava/util/List;
         7: .line 1993
            invokespecial org.apache.cassandra.service.StorageProxy$RangeForQuery.<init>:(Lorg/apache/cassandra/dht/AbstractBounds;Ljava/util/List;Ljava/util/List;)V
            areturn
        end local 2 // java.util.List liveEndpoints
        end local 1 // org.apache.cassandra.dht.AbstractBounds range
        end local 0 // org.apache.cassandra.service.StorageProxy$RangeIterator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/apache/cassandra/service/StorageProxy$RangeIterator;
            3    8     1          range  Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;
            4    8     2  liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;

  protected java.lang.Object computeNext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.apache.cassandra.service.StorageProxy$RangeIterator.computeNext:()Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/apache/cassandra/utils/AbstractIterator<Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;>;
SourceFile: "StorageProxy.java"
NestHost: org.apache.cassandra.service.StorageProxy
InnerClasses:
  private RangeForQuery = org.apache.cassandra.service.StorageProxy$RangeForQuery of org.apache.cassandra.service.StorageProxy
  private RangeIterator = org.apache.cassandra.service.StorageProxy$RangeIterator of org.apache.cassandra.service.StorageProxy