public class org.apache.cassandra.cql3.functions.TokenFct extends org.apache.cassandra.cql3.functions.NativeScalarFunction
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.functions.TokenFct
  super_class: org.apache.cassandra.cql3.functions.NativeScalarFunction
{
  private final org.apache.cassandra.config.CFMetaData cfm;
    descriptor: Lorg/apache/cassandra/config/CFMetaData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.functions.TokenFct this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
         0: .line 36
            aload 0 /* this */
            ldc "token"
            aload 1 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokeinterface org.apache.cassandra.dht.IPartitioner.getTokenValidator:()Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 1 /* cfm */
            invokestatic org.apache.cassandra.cql3.functions.TokenFct.getKeyTypes:(Lorg/apache/cassandra/config/CFMetaData;)[Lorg/apache/cassandra/db/marshal/AbstractType;
            invokespecial org.apache.cassandra.cql3.functions.NativeScalarFunction.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;[Lorg/apache/cassandra/db/marshal/AbstractType;)V
         1: .line 37
            aload 0 /* this */
            aload 1 /* cfm */
            putfield org.apache.cassandra.cql3.functions.TokenFct.cfm:Lorg/apache/cassandra/config/CFMetaData;
         2: .line 38
            return
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.functions.TokenFct this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/cql3/functions/TokenFct;
            0    3     1   cfm  Lorg/apache/cassandra/config/CFMetaData;
    MethodParameters:
      Name  Flags
      cfm   

  private static org.apache.cassandra.db.marshal.AbstractType[] getKeyTypes(org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;)[Lorg/apache/cassandra/db/marshal/AbstractType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.apache.cassandra.config.CFMetaData cfm
         0: .line 42
            aload 0 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.partitionKeyColumns:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray org.apache.cassandra.db.marshal.AbstractType
            astore 1 /* types */
        start local 1 // org.apache.cassandra.db.marshal.AbstractType[] types
         1: .line 43
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: .line 44
            aload 0 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.partitionKeyColumns:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.marshal.AbstractType[] int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 3 /* def */
        start local 3 // org.apache.cassandra.config.ColumnDefinition def
         4: .line 45
            aload 1 /* types */
            iload 2 /* i */
            iinc 2 /* i */ 1
            aload 3 /* def */
            getfield org.apache.cassandra.config.ColumnDefinition.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            aastore
        end local 3 // org.apache.cassandra.config.ColumnDefinition def
         5: .line 44
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 46
            aload 1 /* types */
            areturn
        end local 2 // int i
        end local 1 // org.apache.cassandra.db.marshal.AbstractType[] types
        end local 0 // org.apache.cassandra.config.CFMetaData cfm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    cfm  Lorg/apache/cassandra/config/CFMetaData;
            1    7     1  types  [Lorg/apache/cassandra/db/marshal/AbstractType;
            2    7     2      i  I
            4    5     3    def  Lorg/apache/cassandra/config/ColumnDefinition;
    MethodParameters:
      Name  Flags
      cfm   

  public java.nio.ByteBuffer execute(org.apache.cassandra.transport.ProtocolVersion, java.util.List<java.nio.ByteBuffer>);
    descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.apache.cassandra.cql3.functions.TokenFct this
        start local 1 // org.apache.cassandra.transport.ProtocolVersion protocolVersion
        start local 2 // java.util.List parameters
         0: .line 51
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.TokenFct.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.getKeyValidatorAsClusteringComparator:()Lorg/apache/cassandra/db/ClusteringComparator;
            invokestatic org.apache.cassandra.db.CBuilder.create:(Lorg/apache/cassandra/db/ClusteringComparator;)Lorg/apache/cassandra/db/CBuilder;
            astore 3 /* builder */
        start local 3 // org.apache.cassandra.db.CBuilder builder
         1: .line 52
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 54
      StackMap locals: org.apache.cassandra.db.CBuilder int
      StackMap stack:
            aload 2 /* parameters */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 5 /* bb */
        start local 5 // java.nio.ByteBuffer bb
         4: .line 55
            aload 5 /* bb */
            ifnonnull 6
         5: .line 56
            aconst_null
            areturn
         6: .line 57
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 3 /* builder */
            aload 5 /* bb */
            invokevirtual org.apache.cassandra.db.CBuilder.add:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/CBuilder;
            pop
        end local 5 // java.nio.ByteBuffer bb
         7: .line 52
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 2 /* parameters */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 4 // int i
         9: .line 59
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.TokenFct.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokeinterface org.apache.cassandra.dht.IPartitioner.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.TokenFct.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 3 /* builder */
            invokevirtual org.apache.cassandra.db.CBuilder.build:()Lorg/apache/cassandra/db/Clustering;
            invokestatic org.apache.cassandra.config.CFMetaData.serializePartitionKey:(Lorg/apache/cassandra/db/ClusteringPrefix;)Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.dht.IPartitioner.getToken:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.toByteArray:(Lorg/apache/cassandra/dht/Token;)Ljava/nio/ByteBuffer;
            areturn
        end local 3 // org.apache.cassandra.db.CBuilder builder
        end local 2 // java.util.List parameters
        end local 1 // org.apache.cassandra.transport.ProtocolVersion protocolVersion
        end local 0 // org.apache.cassandra.cql3.functions.TokenFct this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/apache/cassandra/cql3/functions/TokenFct;
            0   10     1  protocolVersion  Lorg/apache/cassandra/transport/ProtocolVersion;
            0   10     2       parameters  Ljava/util/List<Ljava/nio/ByteBuffer;>;
            1   10     3          builder  Lorg/apache/cassandra/db/CBuilder;
            2    9     4                i  I
            4    7     5               bb  Ljava/nio/ByteBuffer;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/nio/ByteBuffer;
    MethodParameters:
                 Name  Flags
      protocolVersion  
      parameters       
}
SourceFile: "TokenFct.java"
InnerClasses:
  public abstract TokenFactory = org.apache.cassandra.dht.Token$TokenFactory of org.apache.cassandra.dht.Token