public class org.apache.cassandra.utils.MerkleTree$TreeRangeIterator extends org.apache.cassandra.utils.AbstractIterator<org.apache.cassandra.utils.MerkleTree$TreeRange> implements java.lang.Iterable<org.apache.cassandra.utils.MerkleTree$TreeRange>, com.google.common.collect.PeekingIterator<org.apache.cassandra.utils.MerkleTree$TreeRange>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.MerkleTree$TreeRangeIterator
super_class: org.apache.cassandra.utils.AbstractIterator
{
private final java.util.ArrayDeque<org.apache.cassandra.utils.MerkleTree$TreeRange> tovisit;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayDeque<Lorg/apache/cassandra/utils/MerkleTree$TreeRange;>;
private final org.apache.cassandra.utils.MerkleTree tree;
descriptor: Lorg/apache/cassandra/utils/MerkleTree;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.apache.cassandra.utils.MerkleTree);
descriptor: (Lorg/apache/cassandra/utils/MerkleTree;)V
flags: (0x0000)
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.apache.cassandra.utils.AbstractIterator.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
2: aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
new org.apache.cassandra.utils.MerkleTree$TreeRange
dup
aload 1
aload 1
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
aload 1
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
iconst_0
aload 1
getfield org.apache.cassandra.utils.MerkleTree.root:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
invokespecial org.apache.cassandra.utils.MerkleTree$TreeRange.<init>:(Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/dht/Token;BLorg/apache/cassandra/utils/MerkleTree$Hashable;)V
invokevirtual java.util.ArrayDeque.add:(Ljava/lang/Object;)Z
pop
3: aload 0
aload 1
putfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tree:Lorg/apache/cassandra/utils/MerkleTree;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTree$TreeRangeIterator;
0 5 1 tree Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
tree
public org.apache.cassandra.utils.MerkleTree$TreeRange computeNext();
descriptor: ()Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: goto 15
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree$TreeRange
astore 1
start local 1 2: aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.hashable:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
instanceof org.apache.cassandra.utils.MerkleTree$Leaf
ifeq 6
3: aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.isWrapAround:()Z
ifeq 5
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifne 5
4: aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
aload 1
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
5: StackMap locals: org.apache.cassandra.utils.MerkleTree$TreeRange
StackMap stack:
aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.hashable:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
checkcast org.apache.cassandra.utils.MerkleTree$Inner
astore 2
start local 2 7: new org.apache.cassandra.utils.MerkleTree$TreeRange
dup
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tree:Lorg/apache/cassandra/utils/MerkleTree;
aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
aload 2
getfield org.apache.cassandra.utils.MerkleTree$Inner.token:Lorg/apache/cassandra/dht/Token;
aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.depth:B
invokestatic org.apache.cassandra.utils.MerkleTree.inc:(B)B
aload 2
getfield org.apache.cassandra.utils.MerkleTree$Inner.lchild:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
invokespecial org.apache.cassandra.utils.MerkleTree$TreeRange.<init>:(Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/dht/Token;BLorg/apache/cassandra/utils/MerkleTree$Hashable;)V
astore 3
start local 3 8: new org.apache.cassandra.utils.MerkleTree$TreeRange
dup
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tree:Lorg/apache/cassandra/utils/MerkleTree;
aload 2
getfield org.apache.cassandra.utils.MerkleTree$Inner.token:Lorg/apache/cassandra/dht/Token;
aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
aload 1
getfield org.apache.cassandra.utils.MerkleTree$TreeRange.depth:B
invokestatic org.apache.cassandra.utils.MerkleTree.inc:(B)B
aload 2
getfield org.apache.cassandra.utils.MerkleTree$Inner.rchild:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
invokespecial org.apache.cassandra.utils.MerkleTree$TreeRange.<init>:(Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/dht/Token;BLorg/apache/cassandra/utils/MerkleTree$Hashable;)V
astore 4
start local 4 9: aload 4
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.isWrapAround:()Z
ifeq 13
10: aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
aload 3
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
11: aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
aload 4
invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
12: goto 15
13: StackMap locals: org.apache.cassandra.utils.MerkleTree$Inner org.apache.cassandra.utils.MerkleTree$TreeRange org.apache.cassandra.utils.MerkleTree$TreeRange
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
aload 4
invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
14: aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
aload 3
invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
end local 4 end local 3 end local 2 end local 1 15: StackMap locals: org.apache.cassandra.utils.MerkleTree$TreeRangeIterator
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.tovisit:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifeq 1
16: aload 0
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.endOfData:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree$TreeRange
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/utils/MerkleTree$TreeRangeIterator;
2 15 1 active Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
7 15 2 node Lorg/apache/cassandra/utils/MerkleTree$Inner;
8 15 3 left Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
9 15 4 right Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
public java.util.Iterator<org.apache.cassandra.utils.MerkleTree$TreeRange> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTree$TreeRangeIterator;
Signature: ()Ljava/util/Iterator<Lorg/apache/cassandra/utils/MerkleTree$TreeRange;>;
public java.lang.Object computeNext();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRangeIterator.computeNext:()Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/apache/cassandra/utils/AbstractIterator<Lorg/apache/cassandra/utils/MerkleTree$TreeRange;>;Ljava/lang/Iterable<Lorg/apache/cassandra/utils/MerkleTree$TreeRange;>;Lcom/google/common/collect/PeekingIterator<Lorg/apache/cassandra/utils/MerkleTree$TreeRange;>;
SourceFile: "MerkleTree.java"
NestHost: org.apache.cassandra.utils.MerkleTree
InnerClasses:
abstract Hashable = org.apache.cassandra.utils.MerkleTree$Hashable of org.apache.cassandra.utils.MerkleTree
Inner = org.apache.cassandra.utils.MerkleTree$Inner of org.apache.cassandra.utils.MerkleTree
Leaf = org.apache.cassandra.utils.MerkleTree$Leaf of org.apache.cassandra.utils.MerkleTree
public TreeRange = org.apache.cassandra.utils.MerkleTree$TreeRange of org.apache.cassandra.utils.MerkleTree
public TreeRangeIterator = org.apache.cassandra.utils.MerkleTree$TreeRangeIterator of org.apache.cassandra.utils.MerkleTree