public class com.datastax.oss.protocol.internal.response.Event$Codec extends com.datastax.oss.protocol.internal.Message$Codec
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.datastax.oss.protocol.internal.response.Event$Codec
  super_class: com.datastax.oss.protocol.internal.Message$Codec
{
  private final java.util.Map<java.lang.String, com.datastax.oss.protocol.internal.response.Event$SubCodec> subDecoders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;>;

  public void <init>(int, com.datastax.oss.protocol.internal.response.Event$SubCodec[]);
    descriptor: (I[Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // int protocolVersion
        start local 2 // com.datastax.oss.protocol.internal.response.Event$SubCodec[] subCodecs
         0: .line 43
            aload 0 /* this */
            bipush 12
            iload 1 /* protocolVersion */
            invokespecial com.datastax.oss.protocol.internal.Message$Codec.<init>:(II)V
         1: .line 44
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* tmp */
        start local 3 // java.util.Map tmp
         2: .line 45
            aload 2 /* subCodecs */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: com.datastax.oss.protocol.internal.response.Event$Codec int com.datastax.oss.protocol.internal.response.Event$SubCodec[] java.util.Map top int int com.datastax.oss.protocol.internal.response.Event$SubCodec[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* subCodec */
        start local 4 // com.datastax.oss.protocol.internal.response.Event$SubCodec subCodec
         4: .line 46
            aload 3 /* tmp */
            aload 4 /* subCodec */
            getfield com.datastax.oss.protocol.internal.response.Event$SubCodec.type:Ljava/lang/String;
            aload 4 /* subCodec */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // com.datastax.oss.protocol.internal.response.Event$SubCodec subCodec
         5: .line 45
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 3
         7: .line 48
            aload 0 /* this */
            aload 3 /* tmp */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.datastax.oss.protocol.internal.response.Event$Codec.subDecoders:Ljava/util/Map;
         8: .line 49
            return
        end local 3 // java.util.Map tmp
        end local 2 // com.datastax.oss.protocol.internal.response.Event$SubCodec[] subCodecs
        end local 1 // int protocolVersion
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    9     1  protocolVersion  I
            0    9     2        subCodecs  [Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
            2    9     3              tmp  Ljava/util/Map<Ljava/lang/String;Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;>;
            4    5     4         subCodec  Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
    MethodParameters:
                 Name  Flags
      protocolVersion  
      subCodecs        

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // int protocolVersion
         0: .line 53
            aload 0 /* this */
         1: .line 54
            iload 1 /* protocolVersion */
            iconst_3
            anewarray com.datastax.oss.protocol.internal.response.Event$SubCodec
            dup
            iconst_0
         2: .line 55
            new com.datastax.oss.protocol.internal.response.event.TopologyChangeEvent$SubCodec
            dup
            iload 1 /* protocolVersion */
            invokespecial com.datastax.oss.protocol.internal.response.event.TopologyChangeEvent$SubCodec.<init>:(I)V
            aastore
            dup
            iconst_1
         3: .line 56
            new com.datastax.oss.protocol.internal.response.event.StatusChangeEvent$SubCodec
            dup
            iload 1 /* protocolVersion */
            invokespecial com.datastax.oss.protocol.internal.response.event.StatusChangeEvent$SubCodec.<init>:(I)V
            aastore
            dup
            iconst_2
         4: .line 57
            new com.datastax.oss.protocol.internal.response.event.SchemaChangeEvent$SubCodec
            dup
            iload 1 /* protocolVersion */
            invokespecial com.datastax.oss.protocol.internal.response.event.SchemaChangeEvent$SubCodec.<init>:(I)V
            aastore
            invokespecial com.datastax.oss.protocol.internal.response.Event$Codec.<init>:(I[Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;)V
         5: .line 58
            return
        end local 1 // int protocolVersion
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    6     1  protocolVersion  I
    MethodParameters:
                 Name  Flags
      protocolVersion  

  public <B> void encode(B, com.datastax.oss.protocol.internal.Message, com.datastax.oss.protocol.internal.PrimitiveCodec<B>);
    descriptor: (Ljava/lang/Object;Lcom/datastax/oss/protocol/internal/Message;Lcom/datastax/oss/protocol/internal/PrimitiveCodec;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // java.lang.Object dest
        start local 2 // com.datastax.oss.protocol.internal.Message message
        start local 3 // com.datastax.oss.protocol.internal.PrimitiveCodec encoder
         0: .line 62
            aload 2 /* message */
            checkcast com.datastax.oss.protocol.internal.response.Event
            astore 4 /* event */
        start local 4 // com.datastax.oss.protocol.internal.response.Event event
         1: .line 63
            aload 3 /* encoder */
            aload 4 /* event */
            getfield com.datastax.oss.protocol.internal.response.Event.type:Ljava/lang/String;
            aload 1 /* dest */
            invokeinterface com.datastax.oss.protocol.internal.PrimitiveCodec.writeString:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 64
            aload 0 /* this */
            aload 4 /* event */
            getfield com.datastax.oss.protocol.internal.response.Event.type:Ljava/lang/String;
            invokevirtual com.datastax.oss.protocol.internal.response.Event$Codec.getSubCodec:(Ljava/lang/String;)Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
            aload 1 /* dest */
            aload 2 /* message */
            aload 3 /* encoder */
            invokevirtual com.datastax.oss.protocol.internal.response.Event$SubCodec.encode:(Ljava/lang/Object;Lcom/datastax/oss/protocol/internal/Message;Lcom/datastax/oss/protocol/internal/PrimitiveCodec;)V
         3: .line 65
            return
        end local 4 // com.datastax.oss.protocol.internal.response.Event event
        end local 3 // com.datastax.oss.protocol.internal.PrimitiveCodec encoder
        end local 2 // com.datastax.oss.protocol.internal.Message message
        end local 1 // java.lang.Object dest
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    4     1     dest  TB;
            0    4     2  message  Lcom/datastax/oss/protocol/internal/Message;
            0    4     3  encoder  Lcom/datastax/oss/protocol/internal/PrimitiveCodec<TB;>;
            1    4     4    event  Lcom/datastax/oss/protocol/internal/response/Event;
    Signature: <B:Ljava/lang/Object;>(TB;Lcom/datastax/oss/protocol/internal/Message;Lcom/datastax/oss/protocol/internal/PrimitiveCodec<TB;>;)V
    MethodParameters:
         Name  Flags
      dest     
      message  
      encoder  

  public int encodedSize(com.datastax.oss.protocol.internal.Message);
    descriptor: (Lcom/datastax/oss/protocol/internal/Message;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // com.datastax.oss.protocol.internal.Message message
         0: .line 69
            aload 1 /* message */
            checkcast com.datastax.oss.protocol.internal.response.Event
            astore 2 /* event */
        start local 2 // com.datastax.oss.protocol.internal.response.Event event
         1: .line 70
            aload 2 /* event */
            getfield com.datastax.oss.protocol.internal.response.Event.type:Ljava/lang/String;
            invokestatic com.datastax.oss.protocol.internal.PrimitiveSizes.sizeOfString:(Ljava/lang/String;)I
            aload 0 /* this */
            aload 2 /* event */
            getfield com.datastax.oss.protocol.internal.response.Event.type:Ljava/lang/String;
            invokevirtual com.datastax.oss.protocol.internal.response.Event$Codec.getSubCodec:(Ljava/lang/String;)Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
            aload 1 /* message */
            invokevirtual com.datastax.oss.protocol.internal.response.Event$SubCodec.encodedSize:(Lcom/datastax/oss/protocol/internal/Message;)I
            iadd
            ireturn
        end local 2 // com.datastax.oss.protocol.internal.response.Event event
        end local 1 // com.datastax.oss.protocol.internal.Message message
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    2     1  message  Lcom/datastax/oss/protocol/internal/Message;
            1    2     2    event  Lcom/datastax/oss/protocol/internal/response/Event;
    MethodParameters:
         Name  Flags
      message  

  public <B> com.datastax.oss.protocol.internal.Message decode(B, com.datastax.oss.protocol.internal.PrimitiveCodec<B>);
    descriptor: (Ljava/lang/Object;Lcom/datastax/oss/protocol/internal/PrimitiveCodec;)Lcom/datastax/oss/protocol/internal/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // java.lang.Object source
        start local 2 // com.datastax.oss.protocol.internal.PrimitiveCodec decoder
         0: .line 75
            aload 2 /* decoder */
            aload 1 /* source */
            invokeinterface com.datastax.oss.protocol.internal.PrimitiveCodec.readString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* type */
        start local 3 // java.lang.String type
         1: .line 76
            aload 0 /* this */
            aload 3 /* type */
            invokevirtual com.datastax.oss.protocol.internal.response.Event$Codec.getSubCodec:(Ljava/lang/String;)Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
            aload 1 /* source */
            aload 2 /* decoder */
            invokevirtual com.datastax.oss.protocol.internal.response.Event$SubCodec.decode:(Ljava/lang/Object;Lcom/datastax/oss/protocol/internal/PrimitiveCodec;)Lcom/datastax/oss/protocol/internal/Message;
            areturn
        end local 3 // java.lang.String type
        end local 2 // com.datastax.oss.protocol.internal.PrimitiveCodec decoder
        end local 1 // java.lang.Object source
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    2     1   source  TB;
            0    2     2  decoder  Lcom/datastax/oss/protocol/internal/PrimitiveCodec<TB;>;
            1    2     3     type  Ljava/lang/String;
    Signature: <B:Ljava/lang/Object;>(TB;Lcom/datastax/oss/protocol/internal/PrimitiveCodec<TB;>;)Lcom/datastax/oss/protocol/internal/Message;
    MethodParameters:
         Name  Flags
      source   
      decoder  

  private com.datastax.oss.protocol.internal.response.Event$SubCodec getSubCodec(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
        start local 1 // java.lang.String type
         0: .line 80
            aload 0 /* this */
            getfield com.datastax.oss.protocol.internal.response.Event$Codec.subDecoders:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.datastax.oss.protocol.internal.response.Event$SubCodec
            astore 2 /* subCodec */
        start local 2 // com.datastax.oss.protocol.internal.response.Event$SubCodec subCodec
         1: .line 81
            aload 2 /* subCodec */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: com.datastax.oss.protocol.internal.response.Event$SubCodec
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Unsupported event type: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* type */
            aastore
            invokestatic com.datastax.oss.protocol.internal.ProtocolErrors.check:(ZLjava/lang/String;[Ljava/lang/Object;)V
         4: .line 82
            aload 2 /* subCodec */
            areturn
        end local 2 // com.datastax.oss.protocol.internal.response.Event$SubCodec subCodec
        end local 1 // java.lang.String type
        end local 0 // com.datastax.oss.protocol.internal.response.Event$Codec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/datastax/oss/protocol/internal/response/Event$Codec;
            0    5     1      type  Ljava/lang/String;
            1    5     2  subCodec  Lcom/datastax/oss/protocol/internal/response/Event$SubCodec;
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "Event.java"
NestHost: com.datastax.oss.protocol.internal.response.Event
InnerClasses:
  public abstract Codec = com.datastax.oss.protocol.internal.Message$Codec of com.datastax.oss.protocol.internal.Message
  public Codec = com.datastax.oss.protocol.internal.response.Event$Codec of com.datastax.oss.protocol.internal.response.Event
  public abstract SubCodec = com.datastax.oss.protocol.internal.response.Event$SubCodec of com.datastax.oss.protocol.internal.response.Event
  public SubCodec = com.datastax.oss.protocol.internal.response.event.SchemaChangeEvent$SubCodec of com.datastax.oss.protocol.internal.response.event.SchemaChangeEvent
  public SubCodec = com.datastax.oss.protocol.internal.response.event.StatusChangeEvent$SubCodec of com.datastax.oss.protocol.internal.response.event.StatusChangeEvent
  public SubCodec = com.datastax.oss.protocol.internal.response.event.TopologyChangeEvent$SubCodec of com.datastax.oss.protocol.internal.response.event.TopologyChangeEvent