public abstract class org.apache.cassandra.db.partitions.PurgeFunction extends org.apache.cassandra.db.transform.Transformation<org.apache.cassandra.db.rows.UnfilteredRowIterator>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.db.partitions.PurgeFunction
super_class: org.apache.cassandra.db.transform.Transformation
{
private final boolean isForThrift;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.db.DeletionPurger purger;
descriptor: Lorg/apache/cassandra/db/DeletionPurger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int nowInSec;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean enforceStrictLiveness;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean isReverseOrder;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(boolean, int, int, int, boolean, boolean);
descriptor: (ZIIIZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial org.apache.cassandra.db.transform.Transformation.<init>:()V
1: aload 0
iload 1
putfield org.apache.cassandra.db.partitions.PurgeFunction.isForThrift:Z
2: aload 0
iload 2
putfield org.apache.cassandra.db.partitions.PurgeFunction.nowInSec:I
3: aload 0
aload 0
iload 5
iload 4
iload 3
invokedynamic shouldPurge(Lorg/apache/cassandra/db/partitions/PurgeFunction;ZII)Lorg/apache/cassandra/db/DeletionPurger;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(JI)Z
org/apache/cassandra/db/partitions/PurgeFunction.lambda$0(ZIIJI)Z (7)
(JI)Z
putfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
4: aload 0
iload 6
putfield org.apache.cassandra.db.partitions.PurgeFunction.enforceStrictLiveness:Z
5: return
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 6 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 6 1 isForThrift Z
0 6 2 nowInSec I
0 6 3 gcBefore I
0 6 4 oldestUnrepairedTombstone I
0 6 5 onlyPurgeRepairedTombstones Z
0 6 6 enforceStrictLiveness Z
MethodParameters:
Name Flags
isForThrift
nowInSec
gcBefore
oldestUnrepairedTombstone
onlyPurgeRepairedTombstones
enforceStrictLiveness
protected abstract java.util.function.Predicate<java.lang.Long> getPurgeEvaluator();
descriptor: ()Ljava/util/function/Predicate;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()Ljava/util/function/Predicate<Ljava/lang/Long;>;
protected void onNewPartition(org.apache.cassandra.db.DecoratedKey);
descriptor: (Lorg/apache/cassandra/db/DecoratedKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 1 1 partitionKey Lorg/apache/cassandra/db/DecoratedKey;
MethodParameters:
Name Flags
partitionKey
protected void onEmptyPartitionPostPurge(org.apache.cassandra.db.DecoratedKey);
descriptor: (Lorg/apache/cassandra/db/DecoratedKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 1 1 partitionKey Lorg/apache/cassandra/db/DecoratedKey;
MethodParameters:
Name Flags
partitionKey
protected void updateProgress();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
protected org.apache.cassandra.db.rows.UnfilteredRowIterator applyToPartition(org.apache.cassandra.db.rows.UnfilteredRowIterator);
descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.onNewPartition:(Lorg/apache/cassandra/db/DecoratedKey;)V
1: aload 0
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.isReverseOrder:()Z
putfield org.apache.cassandra.db.partitions.PurgeFunction.isReverseOrder:Z
2: aload 1
aload 0
invokestatic org.apache.cassandra.db.transform.Transformation.apply:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Lorg/apache/cassandra/db/transform/Transformation;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
astore 2
start local 2 3: aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.isForThrift:Z
ifne 7
aload 2
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.isEmpty:()Z
ifeq 7
4: aload 0
aload 2
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.onEmptyPartitionPostPurge:(Lorg/apache/cassandra/db/DecoratedKey;)V
5: aload 2
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.close:()V
6: aconst_null
areturn
7: StackMap locals: org.apache.cassandra.db.rows.UnfilteredRowIterator
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 8 1 partition Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
3 8 2 purged Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
MethodParameters:
Name Flags
partition
protected org.apache.cassandra.db.DeletionTime applyToDeletion(org.apache.cassandra.db.DeletionTime);
descriptor: (Lorg/apache/cassandra/db/DeletionTime;)Lorg/apache/cassandra/db/DeletionTime;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 1
invokeinterface org.apache.cassandra.db.DeletionPurger.shouldPurge:(Lorg/apache/cassandra/db/DeletionTime;)Z
ifeq 1
getstatic org.apache.cassandra.db.DeletionTime.LIVE:Lorg/apache/cassandra/db/DeletionTime;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: org.apache.cassandra.db.DeletionTime
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 3 1 deletionTime Lorg/apache/cassandra/db/DeletionTime;
MethodParameters:
Name Flags
deletionTime
protected org.apache.cassandra.db.rows.Row applyToStatic(org.apache.cassandra.db.rows.Row);
descriptor: (Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.updateProgress:()V
1: aload 1
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.nowInSec:I
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.enforceStrictLiveness:Z
invokeinterface org.apache.cassandra.db.rows.Row.purge:(Lorg/apache/cassandra/db/DeletionPurger;IZ)Lorg/apache/cassandra/db/rows/Row;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 2 1 row Lorg/apache/cassandra/db/rows/Row;
MethodParameters:
Name Flags
row
protected org.apache.cassandra.db.rows.Row applyToRow(org.apache.cassandra.db.rows.Row);
descriptor: (Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.updateProgress:()V
1: aload 1
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.nowInSec:I
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.enforceStrictLiveness:Z
invokeinterface org.apache.cassandra.db.rows.Row.purge:(Lorg/apache/cassandra/db/DeletionPurger;IZ)Lorg/apache/cassandra/db/rows/Row;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 2 1 row Lorg/apache/cassandra/db/rows/Row;
MethodParameters:
Name Flags
row
protected org.apache.cassandra.db.rows.RangeTombstoneMarker applyToMarker(org.apache.cassandra.db.rows.RangeTombstoneMarker);
descriptor: (Lorg/apache/cassandra/db/rows/RangeTombstoneMarker;)Lorg/apache/cassandra/db/rows/RangeTombstoneMarker;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.updateProgress:()V
1: aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.isReverseOrder:Z
istore 2
start local 2 2: aload 1
invokeinterface org.apache.cassandra.db.rows.RangeTombstoneMarker.isBoundary:()Z
ifeq 14
3: aload 1
checkcast org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker
astore 3
start local 3 4: aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 3
iload 2
invokevirtual org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker.closeDeletionTime:(Z)Lorg/apache/cassandra/db/DeletionTime;
invokeinterface org.apache.cassandra.db.DeletionPurger.shouldPurge:(Lorg/apache/cassandra/db/DeletionTime;)Z
istore 4
start local 4 5: aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 3
iload 2
invokevirtual org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker.openDeletionTime:(Z)Lorg/apache/cassandra/db/DeletionTime;
invokeinterface org.apache.cassandra.db.DeletionPurger.shouldPurge:(Lorg/apache/cassandra/db/DeletionTime;)Z
istore 5
start local 5 6: iload 4
ifeq 10
7: iload 5
ifeq 9
8: aconst_null
areturn
9: StackMap locals: org.apache.cassandra.db.partitions.PurgeFunction org.apache.cassandra.db.rows.RangeTombstoneMarker int org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker int int
StackMap stack:
aload 3
iload 2
invokevirtual org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker.createCorrespondingOpenMarker:(Z)Lorg/apache/cassandra/db/rows/RangeTombstoneBoundMarker;
areturn
10: StackMap locals:
StackMap stack:
iload 5
ifeq 12
11: aload 3
iload 2
invokevirtual org.apache.cassandra.db.rows.RangeTombstoneBoundaryMarker.createCorrespondingCloseMarker:(Z)Lorg/apache/cassandra/db/rows/RangeTombstoneBoundMarker;
goto 13
12: StackMap locals:
StackMap stack:
aload 1
13: StackMap locals:
StackMap stack: org.apache.cassandra.db.rows.RangeTombstoneMarker
areturn
end local 5 end local 4 end local 3 14: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.partitions.PurgeFunction.purger:Lorg/apache/cassandra/db/DeletionPurger;
aload 1
checkcast org.apache.cassandra.db.rows.RangeTombstoneBoundMarker
invokevirtual org.apache.cassandra.db.rows.RangeTombstoneBoundMarker.deletionTime:()Lorg/apache/cassandra/db/DeletionTime;
invokeinterface org.apache.cassandra.db.DeletionPurger.shouldPurge:(Lorg/apache/cassandra/db/DeletionTime;)Z
ifeq 15
aconst_null
goto 16
StackMap locals:
StackMap stack:
15: aload 1
StackMap locals:
StackMap stack: org.apache.cassandra.db.rows.RangeTombstoneMarker
16: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 17 1 marker Lorg/apache/cassandra/db/rows/RangeTombstoneMarker;
2 17 2 reversed Z
4 14 3 boundary Lorg/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker;
5 14 4 shouldPurgeClose Z
6 14 5 shouldPurgeOpen Z
MethodParameters:
Name Flags
marker
protected org.apache.cassandra.db.rows.BaseRowIterator applyToPartition(org.apache.cassandra.db.rows.BaseRowIterator);
descriptor: (Lorg/apache/cassandra/db/rows/BaseRowIterator;)Lorg/apache/cassandra/db/rows/BaseRowIterator;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.apache.cassandra.db.rows.UnfilteredRowIterator
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.applyToPartition:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
areturn
LocalVariableTable:
Start End Slot Name Signature
private boolean lambda$0(boolean, int, int, long, int);
descriptor: (ZIIJI)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 4 start local 6 0: iload 1
ifeq 1
iload 6
iload 2
if_icmpge 3
1: StackMap locals:
StackMap stack:
iload 6
iload 3
if_icmpge 3
2: aload 0
invokevirtual org.apache.cassandra.db.partitions.PurgeFunction.getPurgeEvaluator:()Ljava/util/function/Predicate;
lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ireturn
end local 6 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/db/partitions/PurgeFunction;
0 5 4 timestamp J
0 5 6 localDeletionTime I
}
Signature: Lorg/apache/cassandra/db/transform/Transformation<Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;>;
SourceFile: "PurgeFunction.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles