public abstract class org.apache.cassandra.io.sstable.SSTable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.cassandra.io.sstable.SSTable
  super_class: java.lang.Object
{
  static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  public static final int TOMBSTONE_HISTOGRAM_BIN_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  public static final int TOMBSTONE_HISTOGRAM_SPOOL_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 100000

  public static final int TOMBSTONE_HISTOGRAM_TTL_ROUND_SECONDS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public final org.apache.cassandra.io.sstable.Descriptor descriptor;
    descriptor: Lorg/apache/cassandra/io/sstable/Descriptor;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  protected final java.util.Set<org.apache.cassandra.io.sstable.Component> components;
    descriptor: Ljava/util/Set;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;

  public final org.apache.cassandra.config.CFMetaData metadata;
    descriptor: Lorg/apache/cassandra/config/CFMetaData;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean compression;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public org.apache.cassandra.db.DecoratedKey first;
    descriptor: Lorg/apache/cassandra/db/DecoratedKey;
    flags: (0x0001) ACC_PUBLIC

  public org.apache.cassandra.db.DecoratedKey last;
    descriptor: Lorg/apache/cassandra/db/DecoratedKey;
    flags: (0x0001) ACC_PUBLIC

  protected final org.apache.cassandra.io.util.DiskOptimizationStrategy optimizationStrategy;
    descriptor: Lorg/apache/cassandra/io/util/DiskOptimizationStrategy;
    flags: (0x0014) ACC_PROTECTED, 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=2, locals=0, args_size=0
         0: .line 58
            ldc Lorg/apache/cassandra/io/sstable/SSTable;
            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.io.sstable.SSTable.$assertionsDisabled:Z
         3: .line 60
            ldc Lorg/apache/cassandra/io/sstable/SSTable;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.io.sstable.SSTable.logger:Lorg/slf4j/Logger;
         4: .line 64
            ldc "cassandra.streaminghistogram.roundseconds"
            ldc "60"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic org.apache.cassandra.io.sstable.SSTable.TOMBSTONE_HISTOGRAM_TTL_ROUND_SECONDS:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.apache.cassandra.io.sstable.Descriptor, java.util.Set<org.apache.cassandra.io.sstable.Component>, org.apache.cassandra.config.CFMetaData, org.apache.cassandra.io.util.DiskOptimizationStrategy);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set;Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/io/util/DiskOptimizationStrategy;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
        start local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
        start local 2 // java.util.Set components
        start local 3 // org.apache.cassandra.config.CFMetaData metadata
        start local 4 // org.apache.cassandra.io.util.DiskOptimizationStrategy optimizationStrategy
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            getstatic org.apache.cassandra.io.sstable.SSTable.$assertionsDisabled:Z
            ifne 2
            aload 1 /* descriptor */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 81
      StackMap locals: org.apache.cassandra.io.sstable.SSTable org.apache.cassandra.io.sstable.Descriptor java.util.Set org.apache.cassandra.config.CFMetaData org.apache.cassandra.io.util.DiskOptimizationStrategy
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.SSTable.$assertionsDisabled:Z
            ifne 3
            aload 2 /* components */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 82
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.SSTable.$assertionsDisabled:Z
            ifne 4
            aload 3 /* metadata */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* descriptor */
            putfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
         5: .line 85
            new java.util.HashSet
            dup
            aload 2 /* components */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 5 /* dataComponents */
        start local 5 // java.util.Set dataComponents
         6: .line 86
            aload 0 /* this */
            aload 5 /* dataComponents */
            getstatic org.apache.cassandra.io.sstable.Component.COMPRESSION_INFO:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield org.apache.cassandra.io.sstable.SSTable.compression:Z
         7: .line 87
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArraySet
            dup
            aload 5 /* dataComponents */
            invokespecial java.util.concurrent.CopyOnWriteArraySet.<init>:(Ljava/util/Collection;)V
            putfield org.apache.cassandra.io.sstable.SSTable.components:Ljava/util/Set;
         8: .line 88
            aload 0 /* this */
            aload 3 /* metadata */
            putfield org.apache.cassandra.io.sstable.SSTable.metadata:Lorg/apache/cassandra/config/CFMetaData;
         9: .line 89
            aload 0 /* this */
            aload 4 /* optimizationStrategy */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.io.util.DiskOptimizationStrategy
            putfield org.apache.cassandra.io.sstable.SSTable.optimizationStrategy:Lorg/apache/cassandra/io/util/DiskOptimizationStrategy;
        10: .line 90
            return
        end local 5 // java.util.Set dataComponents
        end local 4 // org.apache.cassandra.io.util.DiskOptimizationStrategy optimizationStrategy
        end local 3 // org.apache.cassandra.config.CFMetaData metadata
        end local 2 // java.util.Set components
        end local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/apache/cassandra/io/sstable/SSTable;
            0   11     1            descriptor  Lorg/apache/cassandra/io/sstable/Descriptor;
            0   11     2            components  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
            0   11     3              metadata  Lorg/apache/cassandra/config/CFMetaData;
            0   11     4  optimizationStrategy  Lorg/apache/cassandra/io/util/DiskOptimizationStrategy;
            6   11     5        dataComponents  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/io/util/DiskOptimizationStrategy;)V
    MethodParameters:
                      Name  Flags
      descriptor            
      components            
      metadata              
      optimizationStrategy  

  public static boolean delete(org.apache.cassandra.io.sstable.Descriptor, java.util.Set<org.apache.cassandra.io.sstable.Component>);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.Descriptor desc
        start local 1 // java.util.Set components
         0: .line 105
            getstatic org.apache.cassandra.io.sstable.SSTable.logger:Lorg/slf4j/Logger;
            ldc "Deleting sstable: {}"
            aload 0 /* desc */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 107
            aload 1 /* components */
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 108
            aload 0 /* desc */
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokestatic org.apache.cassandra.io.util.FileUtils.deleteWithConfirm:(Ljava/lang/String;)V
         3: .line 109
      StackMap locals:
      StackMap stack:
            aload 1 /* components */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.Component
            astore 2 /* component */
        start local 2 // org.apache.cassandra.io.sstable.Component component
         5: .line 111
            aload 2 /* component */
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Component.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 2 /* component */
            getstatic org.apache.cassandra.io.sstable.Component.SUMMARY:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Component.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 112
            goto 8
         7: .line 114
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set org.apache.cassandra.io.sstable.Component java.util.Iterator
      StackMap stack:
            aload 0 /* desc */
            aload 2 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokestatic org.apache.cassandra.io.util.FileUtils.deleteWithConfirm:(Ljava/lang/String;)V
        end local 2 // org.apache.cassandra.io.sstable.Component component
         8: .line 109
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 117
            aload 1 /* components */
            getstatic org.apache.cassandra.io.sstable.Component.SUMMARY:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 118
            aload 0 /* desc */
            getstatic org.apache.cassandra.io.sstable.Component.SUMMARY:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokestatic org.apache.cassandra.io.util.FileUtils.delete:(Ljava/lang/String;)Z
            pop
        11: .line 120
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.util.Set components
        end local 0 // org.apache.cassandra.io.sstable.Descriptor desc
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        desc  Lorg/apache/cassandra/io/sstable/Descriptor;
            0   12     1  components  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
            5    8     2   component  Lorg/apache/cassandra/io/sstable/Component;
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;)Z
    MethodParameters:
            Name  Flags
      desc        
      components  

  public org.apache.cassandra.dht.IPartitioner getPartitioner();
    descriptor: ()Lorg/apache/cassandra/dht/IPartitioner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 125
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  public org.apache.cassandra.db.DecoratedKey decorateKey(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
        start local 1 // java.nio.ByteBuffer key
         0: .line 130
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.sstable.SSTable.getPartitioner:()Lorg/apache/cassandra/dht/IPartitioner;
            aload 1 /* key */
            invokeinterface org.apache.cassandra.dht.IPartitioner.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            areturn
        end local 1 // java.nio.ByteBuffer key
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;
            0    1     1   key  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      key   

  public static org.apache.cassandra.db.DecoratedKey getMinimalKey(org.apache.cassandra.db.DecoratedKey);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;)Lorg/apache/cassandra/db/DecoratedKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.DecoratedKey key
         0: .line 139
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            ifgt 1
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 1
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifne 2
         1: .line 140
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.db.BufferDecoratedKey
            dup
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            getstatic org.apache.cassandra.utils.memory.HeapAllocator.instance:Lorg/apache/cassandra/utils/memory/HeapAllocator;
            aload 0 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.utils.memory.HeapAllocator.clone:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            invokespecial org.apache.cassandra.db.BufferDecoratedKey.<init>:(Lorg/apache/cassandra/dht/Token;Ljava/nio/ByteBuffer;)V
            goto 3
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
         3: .line 139
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.DecoratedKey
            areturn
        end local 0 // org.apache.cassandra.db.DecoratedKey key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Lorg/apache/cassandra/db/DecoratedKey;
    MethodParameters:
      Name  Flags
      key   

  public java.lang.String getFilename();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 146
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  public java.lang.String getIndexFilename();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 151
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getstatic org.apache.cassandra.io.sstable.Component.PRIMARY_INDEX:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  public java.lang.String getColumnFamilyName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 156
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getfield org.apache.cassandra.io.sstable.Descriptor.cfname:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  public java.lang.String getKeyspaceName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 161
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getfield org.apache.cassandra.io.sstable.Descriptor.ksname:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  public java.util.List<java.lang.String> getAllFilePaths();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 166
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ret */
        start local 1 // java.util.List ret
         1: .line 167
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.components:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.io.sstable.SSTable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.Component
            astore 2 /* component */
        start local 2 // org.apache.cassandra.io.sstable.Component component
         3: .line 168
            aload 1 /* ret */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            aload 2 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.cassandra.io.sstable.Component component
         4: .line 167
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 169
            aload 1 /* ret */
            areturn
        end local 1 // java.util.List ret
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/io/sstable/SSTable;
            1    6     1        ret  Ljava/util/List<Ljava/lang/String;>;
            3    4     2  component  Lorg/apache/cassandra/io/sstable/Component;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public static org.apache.cassandra.utils.Pair<org.apache.cassandra.io.sstable.Descriptor, org.apache.cassandra.io.sstable.Component> tryComponentFromFilename(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File dir
        start local 1 // java.lang.String name
         0: .line 180
            aload 0 /* dir */
            aload 1 /* name */
            invokestatic org.apache.cassandra.io.sstable.Component.fromFilename:(Ljava/io/File;Ljava/lang/String;)Lorg/apache/cassandra/utils/Pair;
         1: areturn
         2: .line 182
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         3: .line 184
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   dir  Ljava/io/File;
            0    4     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (Ljava/io/File;Ljava/lang/String;)Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/io/sstable/Descriptor;Lorg/apache/cassandra/io/sstable/Component;>;
    MethodParameters:
      Name  Flags
      dir   
      name  

  public static java.util.Set<org.apache.cassandra.io.sstable.Component> componentsFor(org.apache.cassandra.io.sstable.Descriptor);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.Descriptor desc
         0: .line 197
            aload 0 /* desc */
            invokestatic org.apache.cassandra.io.sstable.SSTable.readTOC:(Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set;
         1: areturn
         2: .line 199
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
            pop
         3: .line 201
            aload 0 /* desc */
            invokestatic org.apache.cassandra.io.sstable.SSTable.discoverComponentsFor:(Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set;
            astore 1 /* components */
        start local 1 // java.util.Set components
         4: .line 202
            aload 1 /* components */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 7
         5: .line 203
            aload 1 /* components */
         6: areturn
         7: .line 205
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* components */
            getstatic org.apache.cassandra.io.sstable.Component.TOC:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 206
            aload 1 /* components */
            getstatic org.apache.cassandra.io.sstable.Component.TOC:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* desc */
            aload 1 /* components */
            invokestatic org.apache.cassandra.io.sstable.SSTable.appendTOC:(Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Collection;)V
        10: .line 208
            aload 1 /* components */
        11: areturn
        end local 1 // java.util.Set components
        12: .line 211
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        13: .line 213
            new java.io.IOError
            dup
            aload 1 /* e */
            invokespecial java.io.IOError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.apache.cassandra.io.sstable.Descriptor desc
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        desc  Lorg/apache/cassandra/io/sstable/Descriptor;
            4   12     1  components  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
           13   14     1           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1      12  Class java.io.IOException
           2     6      12  Class java.io.IOException
           7    11      12  Class java.io.IOException
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
    MethodParameters:
      Name  Flags
      desc  final

  public static java.util.Set<org.apache.cassandra.io.sstable.Component> discoverComponentsFor(org.apache.cassandra.io.sstable.Descriptor);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.Descriptor desc
         0: .line 219
            getstatic org.apache.cassandra.io.sstable.Component.TYPES:Ljava/util/EnumSet;
            getstatic org.apache.cassandra.io.sstable.Component$Type.CUSTOM:Lorg/apache/cassandra/io/sstable/Component$Type;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokestatic com.google.common.collect.Sets.difference:(Ljava/util/Set;Ljava/util/Set;)Lcom/google/common/collect/Sets$SetView;
            astore 1 /* knownTypes */
        start local 1 // java.util.Set knownTypes
         1: .line 220
            aload 1 /* knownTypes */
            invokeinterface java.util.Set.size:()I
            invokestatic com.google.common.collect.Sets.newHashSetWithExpectedSize:(I)Ljava/util/HashSet;
            astore 2 /* components */
        start local 2 // java.util.Set components
         2: .line 221
            aload 1 /* knownTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.Component$Type
            astore 3 /* componentType */
        start local 3 // org.apache.cassandra.io.sstable.Component$Type componentType
         4: .line 223
            aload 3 /* componentType */
            getstatic org.apache.cassandra.io.sstable.Component$Type.DIGEST:Lorg/apache/cassandra/io/sstable/Component$Type;
            if_acmpne 8
         5: .line 225
            aload 0 /* desc */
            getfield org.apache.cassandra.io.sstable.Descriptor.digestComponent:Lorg/apache/cassandra/io/sstable/Component;
            ifnull 11
            new java.io.File
            dup
            aload 0 /* desc */
            aload 0 /* desc */
            getfield org.apache.cassandra.io.sstable.Descriptor.digestComponent:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         6: .line 226
            aload 2 /* components */
            aload 0 /* desc */
            getfield org.apache.cassandra.io.sstable.Descriptor.digestComponent:Lorg/apache/cassandra/io/sstable/Component;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 227
            goto 11
         8: .line 230
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set java.util.Set org.apache.cassandra.io.sstable.Component$Type java.util.Iterator
      StackMap stack:
            new org.apache.cassandra.io.sstable.Component
            dup
            aload 3 /* componentType */
            invokespecial org.apache.cassandra.io.sstable.Component.<init>:(Lorg/apache/cassandra/io/sstable/Component$Type;)V
            astore 5 /* component */
        start local 5 // org.apache.cassandra.io.sstable.Component component
         9: .line 231
            new java.io.File
            dup
            aload 0 /* desc */
            aload 5 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.exists:()Z
            ifeq 11
        10: .line 232
            aload 2 /* components */
            aload 5 /* component */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.apache.cassandra.io.sstable.Component component
        end local 3 // org.apache.cassandra.io.sstable.Component$Type componentType
        11: .line 221
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        12: .line 235
            aload 2 /* components */
            areturn
        end local 2 // java.util.Set components
        end local 1 // java.util.Set knownTypes
        end local 0 // org.apache.cassandra.io.sstable.Descriptor desc
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           desc  Lorg/apache/cassandra/io/sstable/Descriptor;
            1   13     1     knownTypes  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component$Type;>;
            2   13     2     components  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
            4   11     3  componentType  Lorg/apache/cassandra/io/sstable/Component$Type;
            9   11     5      component  Lorg/apache/cassandra/io/sstable/Component;
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
    MethodParameters:
      Name  Flags
      desc  

  protected long estimateRowsFromIndex(org.apache.cassandra.io.util.RandomAccessReader);
    descriptor: (Lorg/apache/cassandra/io/util/RandomAccessReader;)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
        start local 1 // org.apache.cassandra.io.util.RandomAccessReader ifile
         0: .line 242
            ldc 10000000
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.length:()J
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 2 /* BYTES_CAP */
        start local 2 // int BYTES_CAP
         1: .line 243
            iconst_0
            istore 3 /* keys */
        start local 3 // int keys
         2: .line 244
            goto 6
         3: .line 246
      StackMap locals: int int
      StackMap stack:
            aload 1 /* ifile */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.skipShortLength:(Lorg/apache/cassandra/io/util/DataInputPlus;)V
         4: .line 247
            aload 1 /* ifile */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getfield org.apache.cassandra.io.sstable.Descriptor.version:Lorg/apache/cassandra/io/sstable/format/Version;
            invokestatic org.apache.cassandra.db.RowIndexEntry$Serializer.skip:(Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/io/sstable/format/Version;)V
         5: .line 248
            iinc 3 /* keys */ 1
         6: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.getFilePointer:()J
            iload 2 /* BYTES_CAP */
            i2l
            lcmp
            ifge 7
            iload 3 /* keys */
            sipush 10000
            if_icmplt 3
         7: .line 250
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.io.sstable.SSTable.$assertionsDisabled:Z
            ifne 9
            iload 3 /* keys */
            ifle 8
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.getFilePointer:()J
            lconst_0
            lcmp
            ifle 8
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.length:()J
            lconst_0
            lcmp
            ifgt 9
      StackMap locals:
      StackMap stack:
         8: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected empty index file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ifile */
            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
         9: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.length:()J
            aload 1 /* ifile */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.getFilePointer:()J
            iload 3 /* keys */
            i2l
            ldiv
            ldiv
            lstore 4 /* estimatedRows */
        start local 4 // long estimatedRows
        10: .line 252
            aload 1 /* ifile */
            lconst_0
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.seek:(J)V
        11: .line 253
            lload 4 /* estimatedRows */
            lreturn
        end local 4 // long estimatedRows
        end local 3 // int keys
        end local 2 // int BYTES_CAP
        end local 1 // org.apache.cassandra.io.util.RandomAccessReader ifile
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/apache/cassandra/io/sstable/SSTable;
            0   12     1          ifile  Lorg/apache/cassandra/io/util/RandomAccessReader;
            1   12     2      BYTES_CAP  I
            2   12     3           keys  I
           10   12     4  estimatedRows  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      ifile  

  public long bytesOnDisk();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 258
            lconst_0
            lstore 1 /* bytes */
        start local 1 // long bytes
         1: .line 259
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.components:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.io.sstable.SSTable long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.Component
            astore 3 /* component */
        start local 3 // org.apache.cassandra.io.sstable.Component component
         3: .line 261
            lload 1 /* bytes */
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            aload 3 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.length:()J
            ladd
            lstore 1 /* bytes */
        end local 3 // org.apache.cassandra.io.sstable.Component component
         4: .line 259
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 263
            lload 1 /* bytes */
            lreturn
        end local 1 // long bytes
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/io/sstable/SSTable;
            1    6     1      bytes  J
            3    4     3  component  Lorg/apache/cassandra/io/sstable/Component;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
         0: .line 269
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 270
            ldc "path='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.sstable.SSTable.getFilename:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         2: .line 271
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         3: .line 269
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/sstable/SSTable;

  protected static java.util.Set<org.apache.cassandra.io.sstable.Component> readTOC(org.apache.cassandra.io.sstable.Descriptor);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.Descriptor descriptor
         0: .line 280
            new java.io.File
            dup
            aload 0 /* descriptor */
            getstatic org.apache.cassandra.io.sstable.Component.TOC:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* tocFile */
        start local 1 // java.io.File tocFile
         1: .line 281
            aload 1 /* tocFile */
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokestatic com.google.common.io.Files.readLines:(Ljava/io/File;Ljava/nio/charset/Charset;)Ljava/util/List;
            astore 2 /* componentNames */
        start local 2 // java.util.List componentNames
         2: .line 282
            aload 2 /* componentNames */
            invokeinterface java.util.List.size:()I
            invokestatic com.google.common.collect.Sets.newHashSetWithExpectedSize:(I)Ljava/util/HashSet;
            astore 3 /* components */
        start local 3 // java.util.Set components
         3: .line 283
            aload 2 /* componentNames */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.io.File java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* componentName */
        start local 4 // java.lang.String componentName
         5: .line 285
            new org.apache.cassandra.io.sstable.Component
            dup
            aload 4 /* componentName */
            invokestatic org.apache.cassandra.io.sstable.Component$Type.fromRepresentation:(Ljava/lang/String;)Lorg/apache/cassandra/io/sstable/Component$Type;
            aload 4 /* componentName */
            invokespecial org.apache.cassandra.io.sstable.Component.<init>:(Lorg/apache/cassandra/io/sstable/Component$Type;Ljava/lang/String;)V
            astore 6 /* component */
        start local 6 // org.apache.cassandra.io.sstable.Component component
         6: .line 286
            new java.io.File
            dup
            aload 0 /* descriptor */
            aload 6 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.exists:()Z
            ifne 8
         7: .line 287
            getstatic org.apache.cassandra.io.sstable.SSTable.logger:Lorg/slf4j/Logger;
            ldc "Missing component: {}"
            aload 0 /* descriptor */
            aload 6 /* component */
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 9
         8: .line 289
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.io.File java.util.List java.util.Set java.lang.String java.util.Iterator org.apache.cassandra.io.sstable.Component
      StackMap stack:
            aload 3 /* components */
            aload 6 /* component */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.apache.cassandra.io.sstable.Component component
        end local 4 // java.lang.String componentName
         9: .line 283
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.io.File java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 291
            aload 3 /* components */
            areturn
        end local 3 // java.util.Set components
        end local 2 // java.util.List componentNames
        end local 1 // java.io.File tocFile
        end local 0 // org.apache.cassandra.io.sstable.Descriptor descriptor
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0      descriptor  Lorg/apache/cassandra/io/sstable/Descriptor;
            1   11     1         tocFile  Ljava/io/File;
            2   11     2  componentNames  Ljava/util/List<Ljava/lang/String;>;
            3   11     3      components  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
            5    9     4   componentName  Ljava/lang/String;
            6    9     6       component  Lorg/apache/cassandra/io/sstable/Component;
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;)Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;
    MethodParameters:
            Name  Flags
      descriptor  

  protected static void appendTOC(org.apache.cassandra.io.sstable.Descriptor, java.util.Collection<org.apache.cassandra.io.sstable.Component>);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Collection;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.Descriptor descriptor
        start local 1 // java.util.Collection components
         0: .line 299
            new java.io.File
            dup
            aload 0 /* descriptor */
            getstatic org.apache.cassandra.io.sstable.Component.TOC:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* tocFile */
        start local 2 // java.io.File tocFile
         1: .line 300
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.PrintWriter
            dup
            new java.io.FileWriter
            dup
            aload 2 /* tocFile */
            iconst_1
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;Z)V
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            astore 5 /* w */
        start local 5 // java.io.PrintWriter w
         3: .line 302
            aload 1 /* components */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 6
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Collection java.io.File java.lang.Throwable java.lang.Throwable java.io.PrintWriter top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.Component
            astore 6 /* component */
        start local 6 // org.apache.cassandra.io.sstable.Component component
         5: .line 303
            aload 5 /* w */
            aload 6 /* component */
            getfield org.apache.cassandra.io.sstable.Component.name:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 6 // org.apache.cassandra.io.sstable.Component component
         6: .line 302
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 304
            aload 5 /* w */
            ifnull 15
            aload 5 /* w */
            invokevirtual java.io.PrintWriter.close:()V
            goto 15
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Collection java.io.File java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 5 /* w */
            ifnull 9
            aload 5 /* w */
            invokevirtual java.io.PrintWriter.close:()V
        end local 5 // java.io.PrintWriter w
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
            aload 3
            ifnonnull 11
            aload 4
            astore 3
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 3
            aload 4
            if_acmpeq 12
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
        13: .line 305
      StackMap locals: org.apache.cassandra.io.sstable.Descriptor java.util.Collection java.io.File
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        14: .line 307
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 3 /* e */
            aload 2 /* tocFile */
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
            athrow
        end local 3 // java.io.IOException e
        15: .line 309
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File tocFile
        end local 1 // java.util.Collection components
        end local 0 // org.apache.cassandra.io.sstable.Descriptor descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0  descriptor  Lorg/apache/cassandra/io/sstable/Descriptor;
            0   16     1  components  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/Component;>;
            1   16     2     tocFile  Ljava/io/File;
            3    9     5           w  Ljava/io/PrintWriter;
            5    6     6   component  Lorg/apache/cassandra/io/sstable/Component;
           14   15     3           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  Class java.io.IOException
    Signature: (Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/Component;>;)V
    MethodParameters:
            Name  Flags
      descriptor  
      components  

  public synchronized void addComponents(java.util.Collection<org.apache.cassandra.io.sstable.Component>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.io.sstable.SSTable this
        start local 1 // java.util.Collection newComponents
         0: .line 319
            aload 1 /* newComponents */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.components:Ljava/util/Set;
            invokestatic com.google.common.base.Predicates.in:(Ljava/util/Collection;)Lcom/google/common/base/Predicate;
            invokestatic com.google.common.base.Predicates.not:(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
            invokestatic com.google.common.collect.Collections2.filter:(Ljava/util/Collection;Lcom/google/common/base/Predicate;)Ljava/util/Collection;
            astore 2 /* componentsToAdd */
        start local 2 // java.util.Collection componentsToAdd
         1: .line 320
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            aload 2 /* componentsToAdd */
            invokestatic org.apache.cassandra.io.sstable.SSTable.appendTOC:(Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Collection;)V
         2: .line 321
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.SSTable.components:Ljava/util/Set;
            aload 2 /* componentsToAdd */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 322
            return
        end local 2 // java.util.Collection componentsToAdd
        end local 1 // java.util.Collection newComponents
        end local 0 // org.apache.cassandra.io.sstable.SSTable this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/apache/cassandra/io/sstable/SSTable;
            0    4     1    newComponents  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/Component;>;
            1    4     2  componentsToAdd  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/Component;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/Component;>;)V
    MethodParameters:
               Name  Flags
      newComponents  
}
SourceFile: "SSTable.java"
InnerClasses:
  public abstract SetView = com.google.common.collect.Sets$SetView of com.google.common.collect.Sets
  public final Serializer = org.apache.cassandra.db.RowIndexEntry$Serializer of org.apache.cassandra.db.RowIndexEntry
  public final Type = org.apache.cassandra.io.sstable.Component$Type of org.apache.cassandra.io.sstable.Component