public class org.apache.cassandra.cql3.selection.Selectable$WithCast implements org.apache.cassandra.cql3.selection.Selectable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.selection.Selectable$WithCast
  super_class: java.lang.Object
{
  private final org.apache.cassandra.cql3.CQL3Type type;
    descriptor: Lorg/apache/cassandra/cql3/CQL3Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.cql3.selection.Selectable arg;
    descriptor: Lorg/apache/cassandra/cql3/selection/Selectable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.cassandra.cql3.selection.Selectable, org.apache.cassandra.cql3.CQL3Type);
    descriptor: (Lorg/apache/cassandra/cql3/selection/Selectable;Lorg/apache/cassandra/cql3/CQL3Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
        start local 1 // org.apache.cassandra.cql3.selection.Selectable arg
        start local 2 // org.apache.cassandra.cql3.CQL3Type type
         0: .line 359
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 361
            aload 0 /* this */
            aload 1 /* arg */
            putfield org.apache.cassandra.cql3.selection.Selectable$WithCast.arg:Lorg/apache/cassandra/cql3/selection/Selectable;
         2: .line 362
            aload 0 /* this */
            aload 2 /* type */
            putfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
         3: .line 363
            return
        end local 2 // org.apache.cassandra.cql3.CQL3Type type
        end local 1 // org.apache.cassandra.cql3.selection.Selectable arg
        end local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/cql3/selection/Selectable$WithCast;
            0    4     1   arg  Lorg/apache/cassandra/cql3/selection/Selectable;
            0    4     2  type  Lorg/apache/cassandra/cql3/CQL3Type;
    MethodParameters:
      Name  Flags
      arg   
      type  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
         0: .line 368
            ldc "cast(%s as %s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.arg:Lorg/apache/cassandra/cql3/selection/Selectable;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/selection/Selectable$WithCast;

  public org.apache.cassandra.cql3.selection.Selector$Factory newSelectorFactory(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.db.marshal.AbstractType<?>, java.util.List<org.apache.cassandra.config.ColumnDefinition>, org.apache.cassandra.cql3.VariableSpecifications);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/marshal/AbstractType;Ljava/util/List;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/Selector$Factory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=5
        start local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.db.marshal.AbstractType expectedType
        start local 3 // java.util.List defs
        start local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
         0: .line 373
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.arg:Lorg/apache/cassandra/cql3/selection/Selectable;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 5 /* args */
        start local 5 // java.util.List args
         1: .line 374
            aload 5 /* args */
            aconst_null
            aload 1 /* cfm */
            aload 3 /* defs */
            aload 4 /* boundNames */
            invokestatic org.apache.cassandra.cql3.selection.SelectorFactories.createFactoriesAndCollectColumnDefinitions:(Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/SelectorFactories;
            astore 6 /* factories */
        start local 6 // org.apache.cassandra.cql3.selection.SelectorFactories factories
         2: .line 376
            aload 6 /* factories */
            iconst_0
            invokevirtual org.apache.cassandra.cql3.selection.SelectorFactories.get:(I)Lorg/apache/cassandra/cql3/selection/Selector$Factory;
            astore 7 /* factory */
        start local 7 // org.apache.cassandra.cql3.selection.Selector$Factory factory
         3: .line 379
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
            invokeinterface org.apache.cassandra.cql3.CQL3Type.getType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 7 /* factory */
            invokevirtual org.apache.cassandra.cql3.selection.Selector$Factory.getReturnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 380
            aload 7 /* factory */
            areturn
         5: .line 382
      StackMap locals: java.util.List org.apache.cassandra.cql3.selection.SelectorFactories org.apache.cassandra.cql3.selection.Selector$Factory
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
            invokestatic org.apache.cassandra.cql3.functions.CastFcts.getFunctionName:(Lorg/apache/cassandra/cql3/CQL3Type;)Ljava/lang/String;
            invokestatic org.apache.cassandra.cql3.functions.FunctionName.nativeFunction:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/FunctionName;
            astore 8 /* name */
        start local 8 // org.apache.cassandra.cql3.functions.FunctionName name
         6: .line 383
            aload 1 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aload 8 /* name */
            aload 5 /* args */
            aload 1 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aload 1 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            aconst_null
            invokestatic org.apache.cassandra.cql3.functions.FunctionResolver.get:(Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Lorg/apache/cassandra/cql3/functions/Function;
            astore 9 /* fun */
        start local 9 // org.apache.cassandra.cql3.functions.Function fun
         7: .line 385
            aload 9 /* fun */
            ifnonnull 12
         8: .line 387
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "%s cannot be cast to %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 388
            aload 3 /* defs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
            dup
            iconst_1
        10: .line 389
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
            aastore
        11: .line 387
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 391
      StackMap locals: org.apache.cassandra.cql3.functions.FunctionName org.apache.cassandra.cql3.functions.Function
      StackMap stack:
            aload 9 /* fun */
            aload 6 /* factories */
            invokestatic org.apache.cassandra.cql3.selection.AbstractFunctionSelector.newFactory:(Lorg/apache/cassandra/cql3/functions/Function;Lorg/apache/cassandra/cql3/selection/SelectorFactories;)Lorg/apache/cassandra/cql3/selection/Selector$Factory;
            areturn
        end local 9 // org.apache.cassandra.cql3.functions.Function fun
        end local 8 // org.apache.cassandra.cql3.functions.FunctionName name
        end local 7 // org.apache.cassandra.cql3.selection.Selector$Factory factory
        end local 6 // org.apache.cassandra.cql3.selection.SelectorFactories factories
        end local 5 // java.util.List args
        end local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 3 // java.util.List defs
        end local 2 // org.apache.cassandra.db.marshal.AbstractType expectedType
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/apache/cassandra/cql3/selection/Selectable$WithCast;
            0   13     1           cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   13     2  expectedType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
            0   13     3          defs  Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;
            0   13     4    boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            1   13     5          args  Ljava/util/List<Lorg/apache/cassandra/cql3/selection/Selectable;>;
            2   13     6     factories  Lorg/apache/cassandra/cql3/selection/SelectorFactories;
            3   13     7       factory  Lorg/apache/cassandra/cql3/selection/Selector$Factory;
            6   13     8          name  Lorg/apache/cassandra/cql3/functions/FunctionName;
            7   13     9           fun  Lorg/apache/cassandra/cql3/functions/Function;
    Signature: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/Selector$Factory;
    MethodParameters:
              Name  Flags
      cfm           
      expectedType  
      defs          
      boundNames    

  public org.apache.cassandra.db.marshal.AbstractType<?> getExactTypeIfKnown(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/db/marshal/AbstractType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
        start local 1 // java.lang.String keyspace
         0: .line 396
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.selection.Selectable$WithCast.type:Lorg/apache/cassandra/cql3/CQL3Type;
            invokeinterface org.apache.cassandra.cql3.CQL3Type.getType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.cql3.selection.Selectable$WithCast this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/cql3/selection/Selectable$WithCast;
            0    1     1  keyspace  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/apache/cassandra/db/marshal/AbstractType<*>;
    MethodParameters:
          Name  Flags
      keyspace  
}
SourceFile: "Selectable.java"
NestHost: org.apache.cassandra.cql3.selection.Selectable
InnerClasses:
  public WithCast = org.apache.cassandra.cql3.selection.Selectable$WithCast of org.apache.cassandra.cql3.selection.Selectable
  public Raw = org.apache.cassandra.cql3.selection.Selectable$WithCast$Raw of org.apache.cassandra.cql3.selection.Selectable$WithCast
  public abstract Factory = org.apache.cassandra.cql3.selection.Selector$Factory of org.apache.cassandra.cql3.selection.Selector