class org.apache.cassandra.service.StorageProxy$RangeMerger 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$RangeMerger
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 com.google.common.collect.PeekingIterator<org.apache.cassandra.service.StorageProxy$RangeForQuery> ranges;
descriptor: Lcom/google/common/collect/PeekingIterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/PeekingIterator<Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;>;
private void <init>(java.util.Iterator<org.apache.cassandra.service.StorageProxy$RangeForQuery>, org.apache.cassandra.db.Keyspace, org.apache.cassandra.db.ConsistencyLevel);
descriptor: (Ljava/util/Iterator;Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ConsistencyLevel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial org.apache.cassandra.utils.AbstractIterator.<init>:()V
1: aload 0
aload 2
putfield org.apache.cassandra.service.StorageProxy$RangeMerger.keyspace:Lorg/apache/cassandra/db/Keyspace;
2: aload 0
aload 3
putfield org.apache.cassandra.service.StorageProxy$RangeMerger.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
3: aload 0
aload 1
invokestatic com.google.common.collect.Iterators.peekingIterator:(Ljava/util/Iterator;)Lcom/google/common/collect/PeekingIterator;
putfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/service/StorageProxy$RangeMerger;
0 5 1 iterator Ljava/util/Iterator<Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;>;
0 5 2 keyspace Lorg/apache/cassandra/db/Keyspace;
0 5 3 consistency Lorg/apache/cassandra/db/ConsistencyLevel;
Signature: (Ljava/util/Iterator<Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;>;Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ConsistencyLevel;)V
MethodParameters:
Name Flags
iterator
keyspace
consistency
protected org.apache.cassandra.service.StorageProxy$RangeForQuery computeNext();
descriptor: ()Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
invokeinterface com.google.common.collect.PeekingIterator.hasNext:()Z
ifne 2
1: aload 0
invokevirtual org.apache.cassandra.service.StorageProxy$RangeMerger.endOfData:()Ljava/lang/Object;
checkcast org.apache.cassandra.service.StorageProxy$RangeForQuery
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
invokeinterface com.google.common.collect.PeekingIterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.service.StorageProxy$RangeForQuery
astore 1
start local 1 3: goto 15
4: StackMap locals: org.apache.cassandra.service.StorageProxy$RangeForQuery
StackMap stack:
aload 1
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.range:Lorg/apache/cassandra/dht/AbstractBounds;
getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.db.PartitionPosition
invokeinterface org.apache.cassandra.db.PartitionPosition.isMinimum:()Z
ifeq 6
5: goto 16
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
invokeinterface com.google.common.collect.PeekingIterator.peek:()Ljava/lang/Object;
checkcast org.apache.cassandra.service.StorageProxy$RangeForQuery
astore 2
start local 2 7: aload 1
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.liveEndpoints:Ljava/util/List;
aload 2
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.liveEndpoints:Ljava/util/List;
invokestatic org.apache.cassandra.service.StorageProxy.intersection:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
astore 3
start local 3 8: aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.keyspace:Lorg/apache/cassandra/db/Keyspace;
aload 3
invokevirtual org.apache.cassandra.db.ConsistencyLevel.isSufficientLiveNodes:(Lorg/apache/cassandra/db/Keyspace;Ljava/lang/Iterable;)Z
ifne 10
9: goto 16
10: StackMap locals: org.apache.cassandra.service.StorageProxy$RangeForQuery java.util.List
StackMap stack:
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.keyspace:Lorg/apache/cassandra/db/Keyspace;
aload 3
invokevirtual org.apache.cassandra.db.ConsistencyLevel.filterForQuery:(Lorg/apache/cassandra/db/Keyspace;Ljava/util/List;)Ljava/util/List;
astore 4
start local 4 11: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
aload 4
aload 1
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.filteredEndpoints:Ljava/util/List;
aload 2
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.filteredEndpoints:Ljava/util/List;
invokeinterface org.apache.cassandra.locator.IEndpointSnitch.isWorthMergingForRangeQuery:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
ifne 13
12: goto 16
13: StackMap locals: java.util.List
StackMap stack:
new org.apache.cassandra.service.StorageProxy$RangeForQuery
dup
aload 1
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.range:Lorg/apache/cassandra/dht/AbstractBounds;
aload 2
getfield org.apache.cassandra.service.StorageProxy$RangeForQuery.range:Lorg/apache/cassandra/dht/AbstractBounds;
getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.db.PartitionPosition
invokevirtual org.apache.cassandra.dht.AbstractBounds.withNewRight:(Lorg/apache/cassandra/dht/RingPosition;)Lorg/apache/cassandra/dht/AbstractBounds;
aload 3
aload 4
invokespecial org.apache.cassandra.service.StorageProxy$RangeForQuery.<init>:(Lorg/apache/cassandra/dht/AbstractBounds;Ljava/util/List;Ljava/util/List;)V
astore 1
14: aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
invokeinterface com.google.common.collect.PeekingIterator.next:()Ljava/lang/Object;
pop
end local 4 end local 3 end local 2 15: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.StorageProxy$RangeMerger.ranges:Lcom/google/common/collect/PeekingIterator;
invokeinterface com.google.common.collect.PeekingIterator.hasNext:()Z
ifne 4
16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/service/StorageProxy$RangeMerger;
3 17 1 current Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;
7 15 2 next Lorg/apache/cassandra/service/StorageProxy$RangeForQuery;
8 15 3 merged Ljava/util/List<Ljava/net/InetAddress;>;
11 15 4 filteredMerged 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: aload 0
invokevirtual org.apache.cassandra.service.StorageProxy$RangeMerger.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 RangeMerger = org.apache.cassandra.service.StorageProxy$RangeMerger of org.apache.cassandra.service.StorageProxy