public class com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger LOG;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String logPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.datastax.oss.driver.internal.core.session.RequestProcessor<?, ?>[] processors;
    descriptor: [Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<**>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 28
            ldc Lcom/datastax/oss/driver/internal/core/session/RequestProcessorRegistry;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.LOG:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, com.datastax.oss.driver.internal.core.session.RequestProcessor<?, ?>[]);
    descriptor: (Ljava/lang/String;[Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
        start local 1 // java.lang.String logPrefix
        start local 2 // com.datastax.oss.driver.internal.core.session.RequestProcessor[] processors
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            aload 0 /* this */
            aload 1 /* logPrefix */
            putfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.logPrefix:Ljava/lang/String;
         2: .line 36
            aload 0 /* this */
            aload 2 /* processors */
            putfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.processors:[Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
         3: .line 37
            return
        end local 2 // com.datastax.oss.driver.internal.core.session.RequestProcessor[] processors
        end local 1 // java.lang.String logPrefix
        end local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/datastax/oss/driver/internal/core/session/RequestProcessorRegistry;
            0    4     1   logPrefix  Ljava/lang/String;
            0    4     2  processors  [Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
    Signature: (Ljava/lang/String;[Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<**>;)V
    MethodParameters:
            Name  Flags
      logPrefix   
      processors  

  public <RequestT extends com.datastax.oss.driver.api.core.session.Request, ResultT> com.datastax.oss.driver.internal.core.session.RequestProcessor<RequestT, ResultT> processorFor(RequestT, com.datastax.oss.driver.api.core.type.reflect.GenericType<ResultT>);
    descriptor: (Lcom/datastax/oss/driver/api/core/session/Request;Lcom/datastax/oss/driver/api/core/type/reflect/GenericType;)Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
        start local 1 // com.datastax.oss.driver.api.core.session.Request request
        start local 2 // com.datastax.oss.driver.api.core.type.reflect.GenericType resultType
         0: .line 42
            aload 0 /* this */
            getfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.processors:[Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry com.datastax.oss.driver.api.core.session.Request com.datastax.oss.driver.api.core.type.reflect.GenericType top int int com.datastax.oss.driver.internal.core.session.RequestProcessor[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* processor */
        start local 3 // com.datastax.oss.driver.internal.core.session.RequestProcessor processor
         2: .line 43
            aload 3 /* processor */
            aload 1 /* request */
            aload 2 /* resultType */
            invokeinterface com.datastax.oss.driver.internal.core.session.RequestProcessor.canProcess:(Lcom/datastax/oss/driver/api/core/session/Request;Lcom/datastax/oss/driver/api/core/type/reflect/GenericType;)Z
            ifeq 7
         3: .line 44
            getstatic com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.LOG:Lorg/slf4j/Logger;
            ldc "[{}] Using {} to process {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.logPrefix:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* processor */
            aastore
            dup
            iconst_2
            aload 1 /* request */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 48
            aload 3 /* processor */
         5: .line 47
            astore 7 /* result */
        start local 7 // com.datastax.oss.driver.internal.core.session.RequestProcessor result
         6: .line 49
            aload 7 /* result */
            areturn
        end local 7 // com.datastax.oss.driver.internal.core.session.RequestProcessor result
         7: .line 51
      StackMap locals: com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry com.datastax.oss.driver.api.core.session.Request com.datastax.oss.driver.api.core.type.reflect.GenericType com.datastax.oss.driver.internal.core.session.RequestProcessor int int com.datastax.oss.driver.internal.core.session.RequestProcessor[]
      StackMap stack:
            getstatic com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.LOG:Lorg/slf4j/Logger;
            ldc "[{}] {} cannot process {}, trying next"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.logPrefix:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* processor */
            aastore
            dup
            iconst_2
            aload 1 /* request */
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 3 // com.datastax.oss.driver.internal.core.session.RequestProcessor processor
         8: .line 42
            iinc 4 1
      StackMap locals: com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry com.datastax.oss.driver.api.core.session.Request com.datastax.oss.driver.api.core.type.reflect.GenericType top int int com.datastax.oss.driver.internal.core.session.RequestProcessor[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 1
        10: .line 54
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No request processor found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* request */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.datastax.oss.driver.api.core.type.reflect.GenericType resultType
        end local 1 // com.datastax.oss.driver.api.core.session.Request request
        end local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/datastax/oss/driver/internal/core/session/RequestProcessorRegistry;
            0   11     1     request  TRequestT;
            0   11     2  resultType  Lcom/datastax/oss/driver/api/core/type/reflect/GenericType<TResultT;>;
            2    8     3   processor  Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<**>;
            6    7     7      result  Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<TRequestT;TResultT;>;
    Signature: <RequestT::Lcom/datastax/oss/driver/api/core/session/Request;ResultT:Ljava/lang/Object;>(TRequestT;Lcom/datastax/oss/driver/api/core/type/reflect/GenericType<TResultT;>;)Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<TRequestT;TResultT;>;
    MethodParameters:
            Name  Flags
      request     
      resultType  

  public java.lang.Iterable<com.datastax.oss.driver.internal.core.session.RequestProcessor<?, ?>> getProcessors();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
         0: .line 59
            aload 0 /* this */
            getfield com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry.processors:[Lcom/datastax/oss/driver/internal/core/session/RequestProcessor;
            invokestatic com.datastax.oss.driver.shaded.guava.common.collect.ImmutableList.copyOf:([Ljava/lang/Object;)Lcom/datastax/oss/driver/shaded/guava/common/collect/ImmutableList;
            areturn
        end local 0 // com.datastax.oss.driver.internal.core.session.RequestProcessorRegistry this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/datastax/oss/driver/internal/core/session/RequestProcessorRegistry;
    Signature: ()Ljava/lang/Iterable<Lcom/datastax/oss/driver/internal/core/session/RequestProcessor<**>;>;
}
SourceFile: "RequestProcessorRegistry.java"
    RuntimeVisibleAnnotations: 
      net.jcip.annotations.ThreadSafe()