private static LoadBalancingStrategy createLoadBalancingStrategy( Config config, ConnectionPool connectionPool ) { switch ( config.loadBalancingStrategy() ) { case ROUND_ROBIN: return new RoundRobinLoadBalancingStrategy( config.logging() ); case LEAST_CONNECTED: return new LeastConnectedLoadBalancingStrategy( connectionPool, config.logging() ); default: throw new IllegalArgumentException( "Unknown load balancing strategy: " + config.loadBalancingStrategy() ); } }