static Class<? extends SocketChannel> getSocketChannelClass(final EventLoopGroup eventLoopGroup) {
        Objects.requireNonNull(eventLoopGroup);

        final String socketChannelClassName = SOCKET_CHANNEL_CLASSES.get(eventLoopGroup.getClass().getName());

        if (socketChannelClassName == null) {
            throw new IllegalArgumentException("No socket channel class found for event loop group type: " + eventLoopGroup.getClass().getName());
        }

        try {
            return Class.forName(socketChannelClassName).asSubclass(SocketChannel.class);
        } catch (final ClassNotFoundException e) {
            throw new IllegalArgumentException(e);
        }
    }
static Class < ? extends SocketChannel > getSocketChannelClass ( final EventLoopGroup eventLoopGroup ) { Objects . requireNonNull ( eventLoopGroup ) ; final String socketChannelClassName = SOCKET_CHANNEL_CLASSES . get ( eventLoopGroup . getClass ( ) . getName ( ) ) ; if ( socketChannelClassName == null ) { throw new IllegalArgumentException ( "No socket channel class found for event loop group type: " + eventLoopGroup . getClass ( ) . getName ( ) ) ; } try { return Class . forName ( socketChannelClassName ) . asSubclass ( SocketChannel . class ) ; } catch ( final ClassNotFoundException e ) { throw new IllegalArgumentException ( e ) ; } }
Returns a socket channel class suitable for specified event loop group.

@param eventLoopGroup the event loop group for which to identify an appropriate socket channel class; must not
be {@code null}

@return a socket channel class suitable for use with the given event loop group

@throws IllegalArgumentException in case of null or unrecognized event loop group