public abstract class org.apache.cassandra.dht.Splitter
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.dht.Splitter
super_class: java.lang.Object
{
private final org.apache.cassandra.dht.IPartitioner partitioner;
descriptor: Lorg/apache/cassandra/dht/IPartitioner;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/dht/Splitter;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.dht.Splitter.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.apache.cassandra.dht.IPartitioner);
descriptor: (Lorg/apache/cassandra/dht/IPartitioner;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/dht/Splitter;
0 3 1 partitioner Lorg/apache/cassandra/dht/IPartitioner;
MethodParameters:
Name Flags
partitioner
protected abstract org.apache.cassandra.dht.Token tokenForValue(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Lorg/apache/cassandra/dht/Token;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
value
protected abstract java.math.BigInteger valueForToken(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
token
public java.util.List<org.apache.cassandra.dht.Token> splitOwnedRanges(int, java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, boolean);
descriptor: (ILjava/util/List;Z)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface java.util.List.isEmpty:()Z
ifne 1
iload 1
iconst_1
if_icmpne 2
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMaximumToken:()Lorg/apache/cassandra/dht/Token;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 4
start local 4 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 5
start local 5 5: aload 0
aload 0
aload 5
getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.token:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
astore 7
start local 7 6: aload 4
aload 7
aload 0
aload 5
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
end local 7 end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 4
iload 1
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.divide:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 9: aload 5
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 11
10: aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMaximumToken:()Lorg/apache/cassandra/dht/Token;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
areturn
11: StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger java.math.BigInteger
StackMap stack:
iload 3
ifeq 13
12: aload 0
aload 2
aload 5
iload 1
invokevirtual org.apache.cassandra.dht.Splitter.splitOwnedRangesNoPartialRanges:(Ljava/util/List;Ljava/math/BigInteger;I)Ljava/util/List;
areturn
13: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 14: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 7
start local 7 15: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 28
StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger java.math.BigInteger java.util.List java.math.BigInteger top java.util.Iterator
StackMap stack:
16: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 8
start local 8 17: aload 0
aload 8
getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.token:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
astore 10
start local 10 18: aload 0
aload 10
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
aload 0
aload 8
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 11
start local 11 19: aload 0
aload 8
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
astore 12
start local 12 20: goto 26
21: StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger java.math.BigInteger java.util.List java.math.BigInteger org.apache.cassandra.dht.Range java.util.Iterator org.apache.cassandra.dht.Token java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 5
aload 7
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 13
start local 13 22: aload 12
aload 13
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
23: aload 6
aload 0
aload 12
invokevirtual org.apache.cassandra.dht.Splitter.tokenForValue:(Ljava/math/BigInteger;)Lorg/apache/cassandra/dht/Token;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
24: aload 11
aload 13
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 11
25: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 7
end local 13 26: StackMap locals:
StackMap stack:
aload 7
aload 11
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 21
27: aload 7
aload 11
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
end local 12 end local 11 end local 10 end local 8 28: StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger java.math.BigInteger java.util.List java.math.BigInteger top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
29: aload 6
aload 6
invokeinterface java.util.List.size:()I
iconst_1
isub
aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMaximumToken:()Lorg/apache/cassandra/dht/Token;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
30: getstatic org.apache.cassandra.dht.Splitter.$assertionsDisabled:Z
ifne 31
aload 6
invokeinterface java.util.List.size:()I
iload 1
if_icmpeq 31
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 6
invokeinterface java.util.List.size:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "!="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
31: StackMap locals: org.apache.cassandra.dht.Splitter int java.util.List int java.math.BigInteger java.math.BigInteger java.util.List java.math.BigInteger
StackMap stack:
aload 6
areturn
end local 7 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 32 0 this Lorg/apache/cassandra/dht/Splitter;
0 32 1 parts I
0 32 2 localRanges Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
0 32 3 dontSplitRanges Z
3 32 4 totalTokens Ljava/math/BigInteger;
5 7 5 r Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
6 7 7 right Ljava/math/BigInteger;
9 32 5 perPart Ljava/math/BigInteger;
14 32 6 boundaries Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
15 32 7 sum Ljava/math/BigInteger;
17 28 8 r Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
18 28 10 right Lorg/apache/cassandra/dht/Token;
19 28 11 currentRangeWidth Ljava/math/BigInteger;
20 28 12 left Ljava/math/BigInteger;
22 26 13 withinRangeBoundary Ljava/math/BigInteger;
Signature: (ILjava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Z)Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
MethodParameters:
Name Flags
parts
localRanges
dontSplitRanges
private java.util.List<org.apache.cassandra.dht.Token> splitOwnedRangesNoPartialRanges(java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, java.math.BigInteger, int);
descriptor: (Ljava/util/List;Ljava/math/BigInteger;I)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
iload 3
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 1: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: aload 1
invokeinterface java.util.List.size:()I
istore 7
start local 7 4: goto 19
5: StackMap locals: org.apache.cassandra.dht.Splitter java.util.List java.math.BigInteger int java.util.List java.math.BigInteger int int
StackMap stack:
aload 1
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 8
start local 8 6: aload 1
iload 6
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 9
start local 9 7: aload 0
aload 8
getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.token:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
astore 10
start local 10 8: aload 0
aload 9
getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.token:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
astore 11
start local 11 9: aload 0
aload 10
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
aload 0
aload 8
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
start local 12 10: aload 0
aload 11
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
aload 0
aload 9
getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
checkcast org.apache.cassandra.dht.Token
invokevirtual org.apache.cassandra.dht.Splitter.valueForToken:(Lorg/apache/cassandra/dht/Token;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 13
start local 13 11: aload 5
aload 12
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
12: aload 5
aload 2
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifgt 13
aload 5
aload 13
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 2
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifle 18
13: StackMap locals: org.apache.cassandra.dht.Splitter java.util.List java.math.BigInteger int java.util.List java.math.BigInteger int int org.apache.cassandra.dht.Range org.apache.cassandra.dht.Range org.apache.cassandra.dht.Token org.apache.cassandra.dht.Token java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 5
aload 2
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 14
start local 14 14: aload 5
aload 13
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 2
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 15
start local 15 15: aload 15
aload 14
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 18
16: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 5
17: aload 4
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 18: StackMap locals:
StackMap stack:
iinc 6 1
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 19: StackMap locals: org.apache.cassandra.dht.Splitter java.util.List java.math.BigInteger int java.util.List java.math.BigInteger int int
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
iload 3
iconst_1
isub
if_icmpge 20
iload 6
iload 7
iconst_1
isub
if_icmplt 5
20: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMaximumToken:()Lorg/apache/cassandra/dht/Token;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 4
areturn
end local 7 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 22 0 this Lorg/apache/cassandra/dht/Splitter;
0 22 1 localRanges Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
0 22 2 perPart Ljava/math/BigInteger;
0 22 3 parts I
1 22 4 boundaries Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
2 22 5 sum Ljava/math/BigInteger;
3 22 6 i I
4 22 7 rangesCount I
6 19 8 r Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
7 19 9 nextRange Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
8 19 10 right Lorg/apache/cassandra/dht/Token;
9 19 11 nextRight Lorg/apache/cassandra/dht/Token;
10 19 12 currentRangeWidth Ljava/math/BigInteger;
11 19 13 nextRangeWidth Ljava/math/BigInteger;
14 18 14 diffCurrent Ljava/math/BigInteger;
15 18 15 diffNext Ljava/math/BigInteger;
Signature: (Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Ljava/math/BigInteger;I)Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
MethodParameters:
Name Flags
localRanges
perPart
parts
private org.apache.cassandra.dht.Token token(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMinimumToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 0
getfield org.apache.cassandra.dht.Splitter.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.getMaximumToken:()Lorg/apache/cassandra/dht/Token;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: org.apache.cassandra.dht.Token
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/dht/Splitter;
0 3 1 t Lorg/apache/cassandra/dht/Token;
MethodParameters:
Name Flags
t
}
SourceFile: "Splitter.java"