public class org.apache.cassandra.utils.btree.BTreeSearchIterator<K, V> extends org.apache.cassandra.utils.btree.TreeCursor<K> implements org.apache.cassandra.utils.IndexedSearchIterator<K, V>, java.util.Iterator<V>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.btree.BTreeSearchIterator
super_class: org.apache.cassandra.utils.btree.TreeCursor
{
private final boolean forwards;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int index;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte state;
descriptor: B
flags: (0x0002) ACC_PRIVATE
private final int lowerBound;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int upperBound;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int MIDDLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ON_ITEM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int BEFORE_FIRST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int LAST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int END;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
public void <init>([], java.util.Comparator<? super K>, org.apache.cassandra.utils.btree.BTree$Dir);
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
iconst_0
aload 1
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iconst_1
isub
invokespecial org.apache.cassandra.utils.btree.BTreeSearchIterator.<init>:([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;II)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
0 2 1 btree [Ljava/lang/Object;
0 2 2 comparator Ljava/util/Comparator<-TK;>;
0 2 3 dir Lorg/apache/cassandra/utils/btree/BTree$Dir;
Signature: ([Ljava/lang/Object;Ljava/util/Comparator<-TK;>;Lorg/apache/cassandra/utils/btree/BTree$Dir;)V
MethodParameters:
Name Flags
btree
comparator
dir
void <init>([], java.util.Comparator<? super K>, org.apache.cassandra.utils.btree.BTree$Dir, int, );
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/cassandra/utils/btree/BTree$Dir;II)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
aload 1
invokespecial org.apache.cassandra.utils.btree.TreeCursor.<init>:(Ljava/util/Comparator;[Ljava/lang/Object;)V
1: aload 0
aload 3
getstatic org.apache.cassandra.utils.btree.BTree$Dir.ASC:Lorg/apache/cassandra/utils/btree/BTree$Dir;
if_acmpne 2
iconst_1
goto 3
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object[] java.util.Comparator org.apache.cassandra.utils.btree.BTree$Dir int int
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator
2: iconst_0
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object[] java.util.Comparator org.apache.cassandra.utils.btree.BTree$Dir int int
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator int
3: putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
4: aload 0
iload 4
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
5: aload 0
iload 5
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
6: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.rewind:()V
7: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
0 8 1 btree [Ljava/lang/Object;
0 8 2 comparator Ljava/util/Comparator<-TK;>;
0 8 3 dir Lorg/apache/cassandra/utils/btree/BTree$Dir;
0 8 4 lowerBound I
0 8 5 upperBound I
Signature: ([Ljava/lang/Object;Ljava/util/Comparator<-TK;>;Lorg/apache/cassandra/utils/btree/BTree$Dir;II)V
MethodParameters:
Name Flags
btree
comparator
dir
lowerBound
upperBound
private int compareToLast(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
ifeq 1
iload 1
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
isub
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
iload 1
isub
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
0 3 1 idx I
MethodParameters:
Name Flags
idx
private int compareToFirst(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
ifeq 1
iload 1
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
isub
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
iload 1
isub
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
0 3 1 idx I
MethodParameters:
Name Flags
idx
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
iconst_5
if_icmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
public V next();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
tableswitch { // 0 - 4
0: 10
1: 1
2: 4
3: 12
4: 10
default: 12
}
1: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.moveOne:(Z)I
dup_x1
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.index:I
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.compareToLast:(I)I
iflt 13
2: aload 0
iconst_5
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
3: goto 13
4: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
ifeq 5
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
goto 6
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator org.apache.cassandra.utils.btree.BTreeSearchIterator
5: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator org.apache.cassandra.utils.btree.BTreeSearchIterator int
6: dup_x1
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.index:I
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.seekTo:(I)V
7: aload 0
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
if_icmpne 8
iconst_4
goto 9
StackMap locals:
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator
8: iconst_0
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator int
9: i2b
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
10: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
iconst_1
ior
i2b
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
11: goto 13
12: StackMap locals:
StackMap stack:
new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.current:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
Signature: ()TV;
public V next();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.hasNext:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
istore 2
start local 2 3: aload 0
aload 1
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
iload 2
iconst_3
iand
ifeq 4
iconst_1
goto 5
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object int
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object int
4: iconst_0
StackMap locals: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object int
StackMap stack: org.apache.cassandra.utils.btree.BTreeSearchIterator java.lang.Object int int
5: invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.seekTo:(Ljava/lang/Object;ZZ)Z
istore 3
start local 3 6: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.cur:Lorg/apache/cassandra/utils/btree/NodeCursor;
invokevirtual org.apache.cassandra.utils.btree.NodeCursor.globalIndex:()I
istore 4
start local 4 7: aconst_null
astore 5
start local 5 8: iload 2
iconst_2
if_icmpne 10
aload 0
iload 4
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.compareToFirst:(I)I
ifge 10
9: aconst_null
areturn
10: StackMap locals: int int java.lang.Object
StackMap stack:
aload 0
iload 4
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.compareToLast:(I)I
istore 6
start local 6 11: iload 6
ifgt 19
12: iload 6
ifge 13
iconst_0
goto 14
StackMap locals: int
StackMap stack:
13: iconst_4
StackMap locals:
StackMap stack: int
14: istore 2
15: iload 3
ifeq 20
16: iload 2
iconst_1
ior
istore 2
17: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.currentValue:()Ljava/lang/Object;
astore 5
18: goto 20
19: StackMap locals:
StackMap stack:
iconst_5
istore 2
20: StackMap locals:
StackMap stack:
aload 0
iload 2
i2b
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
21: aload 0
iload 4
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.index:I
22: aload 5
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
0 23 1 target TK;
3 23 2 state I
6 23 3 found Z
7 23 4 index I
8 23 5 next TV;
11 23 6 compareToLast I
Signature: (TK;)TV;
MethodParameters:
Name Flags
target
public void rewind();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.upperBound:I
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.lowerBound:I
if_icmpge 3
1: aload 0
iconst_5
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.forwards:Z
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.reset:(Z)V
4: aload 0
iconst_2
putfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
private void checkOnItem();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.state:B
iconst_1
iand
iconst_1
if_icmpeq 2
1: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
public V current();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.checkOnItem:()V
1: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.currentValue:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
Signature: ()TV;
public int indexOfCurrent();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.checkOnItem:()V
1: aload 0
aload 0
getfield org.apache.cassandra.utils.btree.BTreeSearchIterator.index:I
invokevirtual org.apache.cassandra.utils.btree.BTreeSearchIterator.compareToFirst:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/btree/BTreeSearchIterator<TK;TV;>;
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Lorg/apache/cassandra/utils/btree/TreeCursor<TK;>;Lorg/apache/cassandra/utils/IndexedSearchIterator<TK;TV;>;Ljava/util/Iterator<TV;>;
SourceFile: "BTreeSearchIterator.java"
InnerClasses:
public final Dir = org.apache.cassandra.utils.btree.BTree$Dir of org.apache.cassandra.utils.btree.BTree