public final class com.mongodb.internal.event.EventListenerHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.internal.event.EventListenerHelper
  super_class: java.lang.Object
{
  public static final com.mongodb.event.ServerListener NO_OP_SERVER_LISTENER;
    descriptor: Lcom/mongodb/event/ServerListener;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.mongodb.event.ServerMonitorListener NO_OP_SERVER_MONITOR_LISTENER;
    descriptor: Lcom/mongodb/event/ServerMonitorListener;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.mongodb.event.ClusterListener NO_OP_CLUSTER_LISTENER;
    descriptor: Lcom/mongodb/event/ClusterListener;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.mongodb.event.ConnectionPoolListener NO_OP_CONNECTION_POOL_LISTENER;
    descriptor: Lcom/mongodb/event/ConnectionPoolListener;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 98
            new com.mongodb.internal.event.EventListenerHelper$1
            dup
            invokespecial com.mongodb.internal.event.EventListenerHelper$1.<init>:()V
            putstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_SERVER_LISTENER:Lcom/mongodb/event/ServerListener;
         1: .line 101
            new com.mongodb.internal.event.EventListenerHelper$2
            dup
            invokespecial com.mongodb.internal.event.EventListenerHelper$2.<init>:()V
            putstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_SERVER_MONITOR_LISTENER:Lcom/mongodb/event/ServerMonitorListener;
         2: .line 104
            new com.mongodb.internal.event.EventListenerHelper$3
            dup
            invokespecial com.mongodb.internal.event.EventListenerHelper$3.<init>:()V
            putstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_CLUSTER_LISTENER:Lcom/mongodb/event/ClusterListener;
         3: .line 107
            new com.mongodb.internal.event.EventListenerHelper$4
            dup
            invokespecial com.mongodb.internal.event.EventListenerHelper$4.<init>:()V
            putstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_CONNECTION_POOL_LISTENER:Lcom/mongodb/event/ConnectionPoolListener;
         4: .line 108
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.mongodb.event.ClusterListener getClusterListener(com.mongodb.connection.ClusterSettings);
    descriptor: (Lcom/mongodb/connection/ClusterSettings;)Lcom/mongodb/event/ClusterListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.connection.ClusterSettings clusterSettings
         0: .line 38
            aload 0 /* clusterSettings */
            invokevirtual com.mongodb.connection.ClusterSettings.getClusterListeners:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 40
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_CLUSTER_LISTENER:Lcom/mongodb/event/ClusterListener;
            areturn
         2: .line 42
      StackMap locals:
      StackMap stack:
            aload 0 /* clusterSettings */
            invokevirtual com.mongodb.connection.ClusterSettings.getClusterListeners:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.event.ClusterListener
            areturn
         3: .line 44
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.event.ClusterListenerMulticaster
            dup
            aload 0 /* clusterSettings */
            invokevirtual com.mongodb.connection.ClusterSettings.getClusterListeners:()Ljava/util/List;
            invokespecial com.mongodb.internal.event.ClusterListenerMulticaster.<init>:(Ljava/util/List;)V
            areturn
        end local 0 // com.mongodb.connection.ClusterSettings clusterSettings
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0  clusterSettings  Lcom/mongodb/connection/ClusterSettings;
    MethodParameters:
                 Name  Flags
      clusterSettings  final

  public static com.mongodb.event.CommandListener getCommandListener(java.util.List<com.mongodb.event.CommandListener>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/event/CommandListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.List commandListeners
         0: .line 49
            aload 0 /* commandListeners */
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 51
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* commandListeners */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.event.CommandListener
            areturn
         3: .line 55
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.event.CommandListenerMulticaster
            dup
            aload 0 /* commandListeners */
            invokespecial com.mongodb.internal.event.CommandListenerMulticaster.<init>:(Ljava/util/List;)V
            areturn
        end local 0 // java.util.List commandListeners
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0  commandListeners  Ljava/util/List<Lcom/mongodb/event/CommandListener;>;
    Signature: (Ljava/util/List<Lcom/mongodb/event/CommandListener;>;)Lcom/mongodb/event/CommandListener;
    MethodParameters:
                  Name  Flags
      commandListeners  final

  public static com.mongodb.event.ConnectionPoolListener getConnectionPoolListener(com.mongodb.connection.ConnectionPoolSettings);
    descriptor: (Lcom/mongodb/connection/ConnectionPoolSettings;)Lcom/mongodb/event/ConnectionPoolListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.connection.ConnectionPoolSettings connectionPoolSettings
         0: .line 60
            aload 0 /* connectionPoolSettings */
            invokevirtual com.mongodb.connection.ConnectionPoolSettings.getConnectionPoolListeners:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 62
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_CONNECTION_POOL_LISTENER:Lcom/mongodb/event/ConnectionPoolListener;
            areturn
         2: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* connectionPoolSettings */
            invokevirtual com.mongodb.connection.ConnectionPoolSettings.getConnectionPoolListeners:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.event.ConnectionPoolListener
            areturn
         3: .line 66
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.event.ConnectionPoolListenerMulticaster
            dup
            aload 0 /* connectionPoolSettings */
            invokevirtual com.mongodb.connection.ConnectionPoolSettings.getConnectionPoolListeners:()Ljava/util/List;
            invokespecial com.mongodb.internal.event.ConnectionPoolListenerMulticaster.<init>:(Ljava/util/List;)V
            areturn
        end local 0 // com.mongodb.connection.ConnectionPoolSettings connectionPoolSettings
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0  connectionPoolSettings  Lcom/mongodb/connection/ConnectionPoolSettings;
    MethodParameters:
                        Name  Flags
      connectionPoolSettings  final

  public static com.mongodb.event.ServerMonitorListener getServerMonitorListener(com.mongodb.connection.ServerSettings);
    descriptor: (Lcom/mongodb/connection/ServerSettings;)Lcom/mongodb/event/ServerMonitorListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.connection.ServerSettings serverSettings
         0: .line 71
            aload 0 /* serverSettings */
            invokevirtual com.mongodb.connection.ServerSettings.getServerMonitorListeners:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 73
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_SERVER_MONITOR_LISTENER:Lcom/mongodb/event/ServerMonitorListener;
            areturn
         2: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* serverSettings */
            invokevirtual com.mongodb.connection.ServerSettings.getServerMonitorListeners:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.event.ServerMonitorListener
            areturn
         3: .line 77
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.event.ServerMonitorListenerMulticaster
            dup
            aload 0 /* serverSettings */
            invokevirtual com.mongodb.connection.ServerSettings.getServerMonitorListeners:()Ljava/util/List;
            invokespecial com.mongodb.internal.event.ServerMonitorListenerMulticaster.<init>:(Ljava/util/List;)V
            areturn
        end local 0 // com.mongodb.connection.ServerSettings serverSettings
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  serverSettings  Lcom/mongodb/connection/ServerSettings;
    MethodParameters:
                Name  Flags
      serverSettings  final

  public static com.mongodb.event.ServerListener createServerListener(com.mongodb.connection.ServerSettings, com.mongodb.event.ServerListener);
    descriptor: (Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/event/ServerListener;)Lcom/mongodb/event/ServerListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.mongodb.connection.ServerSettings serverSettings
        start local 1 // com.mongodb.event.ServerListener additionalServerListener
         0: .line 82
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* mergedServerListeners */
        start local 2 // java.util.List mergedServerListeners
         1: .line 83
            aload 1 /* additionalServerListener */
            ifnull 3
         2: .line 84
            aload 2 /* mergedServerListeners */
            aload 1 /* additionalServerListener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 86
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* mergedServerListeners */
            aload 0 /* serverSettings */
            invokevirtual com.mongodb.connection.ServerSettings.getServerListeners:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 88
            aload 2 /* mergedServerListeners */
            invokeinterface java.util.List.size:()I
            tableswitch { // 0 - 1
                    0: 5
                    1: 6
              default: 7
          }
         5: .line 90
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.internal.event.EventListenerHelper.NO_OP_SERVER_LISTENER:Lcom/mongodb/event/ServerListener;
            areturn
         6: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* mergedServerListeners */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.event.ServerListener
            areturn
         7: .line 94
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.event.ServerListenerMulticaster
            dup
            aload 2 /* mergedServerListeners */
            invokespecial com.mongodb.internal.event.ServerListenerMulticaster.<init>:(Ljava/util/List;)V
            areturn
        end local 2 // java.util.List mergedServerListeners
        end local 1 // com.mongodb.event.ServerListener additionalServerListener
        end local 0 // com.mongodb.connection.ServerSettings serverSettings
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0            serverSettings  Lcom/mongodb/connection/ServerSettings;
            0    8     1  additionalServerListener  Lcom/mongodb/event/ServerListener;
            1    8     2     mergedServerListeners  Ljava/util/List<Lcom/mongodb/event/ServerListener;>;
    MethodParameters:
                          Name  Flags
      serverSettings            final
      additionalServerListener  final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.event.EventListenerHelper this
         0: .line 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            return
        end local 0 // com.mongodb.internal.event.EventListenerHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/internal/event/EventListenerHelper;
}
SourceFile: "EventListenerHelper.java"
NestMembers:
  com.mongodb.internal.event.EventListenerHelper$1  com.mongodb.internal.event.EventListenerHelper$2  com.mongodb.internal.event.EventListenerHelper$3  com.mongodb.internal.event.EventListenerHelper$4
InnerClasses:
  com.mongodb.internal.event.EventListenerHelper$1
  com.mongodb.internal.event.EventListenerHelper$2
  com.mongodb.internal.event.EventListenerHelper$3
  com.mongodb.internal.event.EventListenerHelper$4