public abstract class org.apache.cassandra.serializers.CollectionSerializer<T> implements org.apache.cassandra.serializers.TypeSerializer<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.cassandra.serializers.CollectionSerializer
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.serializers.CollectionSerializer this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.serializers.CollectionSerializer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/serializers/CollectionSerializer<TT;>;

  protected abstract java.util.List<java.nio.ByteBuffer> serializeValues(T);
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TT;)Ljava/util/List<Ljava/nio/ByteBuffer;>;
    MethodParameters:
       Name  Flags
      value  

  protected abstract int getElementCount();
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TT;)I
    MethodParameters:
       Name  Flags
      value  

  public abstract T deserializeForNativeProtocol(java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)TT;
    MethodParameters:
         Name  Flags
      buffer   
      version  

  public abstract void validateForNativeProtocol(java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      buffer   
      version  

  public java.nio.ByteBuffer serialize(T);
    descriptor: (Ljava/lang/Object;)Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.serializers.CollectionSerializer this
        start local 1 // java.lang.Object value
         0: .line 38
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.apache.cassandra.serializers.CollectionSerializer.serializeValues:(Ljava/lang/Object;)Ljava/util/List;
            astore 2 /* values */
        start local 2 // java.util.List values
         1: .line 40
            aload 2 /* values */
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.apache.cassandra.serializers.CollectionSerializer.getElementCount:(Ljava/lang/Object;)I
            getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
            invokestatic org.apache.cassandra.serializers.CollectionSerializer.pack:(Ljava/util/Collection;ILorg/apache/cassandra/transport/ProtocolVersion;)Ljava/nio/ByteBuffer;
            areturn
        end local 2 // java.util.List values
        end local 1 // java.lang.Object value
        end local 0 // org.apache.cassandra.serializers.CollectionSerializer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/cassandra/serializers/CollectionSerializer<TT;>;
            0    2     1   value  TT;
            1    2     2  values  Ljava/util/List<Ljava/nio/ByteBuffer;>;
    Signature: (TT;)Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      value  

  public T deserialize(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.serializers.CollectionSerializer this
        start local 1 // java.nio.ByteBuffer bytes
         0: .line 50
            aload 0 /* this */
            aload 1 /* bytes */
            getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
            invokevirtual org.apache.cassandra.serializers.CollectionSerializer.deserializeForNativeProtocol:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)Ljava/lang/Object;
            areturn
        end local 1 // java.nio.ByteBuffer bytes
        end local 0 // org.apache.cassandra.serializers.CollectionSerializer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/cassandra/serializers/CollectionSerializer<TT;>;
            0    1     1  bytes  Ljava/nio/ByteBuffer;
    Signature: (Ljava/nio/ByteBuffer;)TT;
    MethodParameters:
       Name  Flags
      bytes  

  public void validate(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.serializers.CollectionSerializer this
        start local 1 // java.nio.ByteBuffer bytes
         0: .line 56
            aload 0 /* this */
            aload 1 /* bytes */
            getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
            invokevirtual org.apache.cassandra.serializers.CollectionSerializer.validateForNativeProtocol:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)V
         1: .line 57
            return
        end local 1 // java.nio.ByteBuffer bytes
        end local 0 // org.apache.cassandra.serializers.CollectionSerializer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/serializers/CollectionSerializer<TT;>;
            0    2     1  bytes  Ljava/nio/ByteBuffer;
    Exceptions:
      throws org.apache.cassandra.serializers.MarshalException
    MethodParameters:
       Name  Flags
      bytes  

  public static java.nio.ByteBuffer pack(java.util.Collection<java.nio.ByteBuffer>, int, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/util/Collection;ILorg/apache/cassandra/transport/ProtocolVersion;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.util.Collection buffers
        start local 1 // int elements
        start local 2 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 61
            iconst_0
            istore 3 /* size */
        start local 3 // int size
         1: .line 62
            aload 0 /* buffers */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: java.util.Collection int org.apache.cassandra.transport.ProtocolVersion int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* bb */
        start local 4 // java.nio.ByteBuffer bb
         3: .line 63
            iload 3 /* size */
            aload 4 /* bb */
            aload 2 /* version */
            invokestatic org.apache.cassandra.serializers.CollectionSerializer.sizeOfValue:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)I
            iadd
            istore 3 /* size */
        end local 4 // java.nio.ByteBuffer bb
         4: .line 62
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 65
            iload 1 /* elements */
            aload 2 /* version */
            invokestatic org.apache.cassandra.serializers.CollectionSerializer.sizeOfCollectionSize:(ILorg/apache/cassandra/transport/ProtocolVersion;)I
            iload 3 /* size */
            iadd
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 4 /* result */
        start local 4 // java.nio.ByteBuffer result
         6: .line 66
            aload 4 /* result */
            iload 1 /* elements */
            aload 2 /* version */
            invokestatic org.apache.cassandra.serializers.CollectionSerializer.writeCollectionSize:(Ljava/nio/ByteBuffer;ILorg/apache/cassandra/transport/ProtocolVersion;)V
         7: .line 67
            aload 0 /* buffers */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: java.util.Collection int org.apache.cassandra.transport.ProtocolVersion int java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 5 /* bb */
        start local 5 // java.nio.ByteBuffer bb
         9: .line 68
            aload 4 /* result */
            aload 5 /* bb */
            aload 2 /* version */
            invokestatic org.apache.cassandra.serializers.CollectionSerializer.writeValue:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)V
        end local 5 // java.nio.ByteBuffer bb
        10: .line 67
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 69
            aload 4 /* result */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            checkcast java.nio.ByteBuffer
            areturn
        end local 4 // java.nio.ByteBuffer result
        end local 3 // int size
        end local 2 // org.apache.cassandra.transport.ProtocolVersion version
        end local 1 // int elements
        end local 0 // java.util.Collection buffers
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0   buffers  Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
            0   12     1  elements  I
            0   12     2   version  Lorg/apache/cassandra/transport/ProtocolVersion;
            1   12     3      size  I
            3    4     4        bb  Ljava/nio/ByteBuffer;
            6   12     4    result  Ljava/nio/ByteBuffer;
            9   10     5        bb  Ljava/nio/ByteBuffer;
    Signature: (Ljava/util/Collection<Ljava/nio/ByteBuffer;>;ILorg/apache/cassandra/transport/ProtocolVersion;)Ljava/nio/ByteBuffer;
    MethodParameters:
          Name  Flags
      buffers   
      elements  
      version   

  protected static void writeCollectionSize(java.nio.ByteBuffer, int, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;ILorg/apache/cassandra/transport/ProtocolVersion;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.nio.ByteBuffer output
        start local 1 // int elements
        start local 2 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 74
            aload 0 /* output */
            iload 1 /* elements */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         1: .line 75
            return
        end local 2 // org.apache.cassandra.transport.ProtocolVersion version
        end local 1 // int elements
        end local 0 // java.nio.ByteBuffer output
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    output  Ljava/nio/ByteBuffer;
            0    2     1  elements  I
            0    2     2   version  Lorg/apache/cassandra/transport/ProtocolVersion;
    MethodParameters:
          Name  Flags
      output    
      elements  
      version   

  public static int readCollectionSize(java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.nio.ByteBuffer input
        start local 1 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 79
            aload 0 /* input */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            ireturn
        end local 1 // org.apache.cassandra.transport.ProtocolVersion version
        end local 0 // java.nio.ByteBuffer input
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0    input  Ljava/nio/ByteBuffer;
            0    1     1  version  Lorg/apache/cassandra/transport/ProtocolVersion;
    MethodParameters:
         Name  Flags
      input    
      version  

  protected static int sizeOfCollectionSize(int, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (ILorg/apache/cassandra/transport/ProtocolVersion;)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // int elements
        start local 1 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 84
            iconst_4
            ireturn
        end local 1 // org.apache.cassandra.transport.ProtocolVersion version
        end local 0 // int elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  elements  I
            0    1     1   version  Lorg/apache/cassandra/transport/ProtocolVersion;
    MethodParameters:
          Name  Flags
      elements  
      version   

  public static void writeValue(java.nio.ByteBuffer, java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.nio.ByteBuffer output
        start local 1 // java.nio.ByteBuffer value
        start local 2 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 89
            aload 1 /* value */
            ifnonnull 3
         1: .line 91
            aload 0 /* output */
            iconst_m1
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 92
            return
         3: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* output */
            aload 1 /* value */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 96
            aload 0 /* output */
            aload 1 /* value */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
         5: .line 97
            return
        end local 2 // org.apache.cassandra.transport.ProtocolVersion version
        end local 1 // java.nio.ByteBuffer value
        end local 0 // java.nio.ByteBuffer output
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0   output  Ljava/nio/ByteBuffer;
            0    6     1    value  Ljava/nio/ByteBuffer;
            0    6     2  version  Lorg/apache/cassandra/transport/ProtocolVersion;
    MethodParameters:
         Name  Flags
      output   
      value    
      version  

  public static java.nio.ByteBuffer readValue(java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.nio.ByteBuffer input
        start local 1 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 101
            aload 0 /* input */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 2 /* size */
        start local 2 // int size
         1: .line 102
            iload 2 /* size */
            ifge 3
         2: .line 103
            aconst_null
            areturn
         3: .line 105
      StackMap locals: int
      StackMap stack:
            aload 0 /* input */
            iload 2 /* size */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.readBytes:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
            areturn
        end local 2 // int size
        end local 1 // org.apache.cassandra.transport.ProtocolVersion version
        end local 0 // java.nio.ByteBuffer input
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0    input  Ljava/nio/ByteBuffer;
            0    4     1  version  Lorg/apache/cassandra/transport/ProtocolVersion;
            1    4     2     size  I
    MethodParameters:
         Name  Flags
      input    
      version  

  public static int sizeOfValue(java.nio.ByteBuffer, org.apache.cassandra.transport.ProtocolVersion);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/apache/cassandra/transport/ProtocolVersion;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.nio.ByteBuffer value
        start local 1 // org.apache.cassandra.transport.ProtocolVersion version
         0: .line 110
            aload 0 /* value */
            ifnonnull 1
            iconst_4
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_4
            aload 0 /* value */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.apache.cassandra.transport.ProtocolVersion version
        end local 0 // java.nio.ByteBuffer value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0    value  Ljava/nio/ByteBuffer;
            0    3     1  version  Lorg/apache/cassandra/transport/ProtocolVersion;
    MethodParameters:
         Name  Flags
      value    
      version  
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/cassandra/serializers/TypeSerializer<TT;>;
SourceFile: "CollectionSerializer.java"