@Override
  public NetworkClient getNetworkClient() throws IOException {
    EnumMap<ReplicaType, NetworkClient> childNetworkClients = new EnumMap<>(ReplicaType.class);
    for (Map.Entry<ReplicaType, NetworkClientFactory> entry : childNetworkClientFactories.entrySet()) {
      childNetworkClients.put(entry.getKey(), entry.getValue().getNetworkClient());
    }
    return new CompositeNetworkClient(childNetworkClients);
  }
@param childNetworkClientFactories a map from {@link ReplicaType} to the {@link NetworkClientFactory} to use for
                                   that type.
ambry-network/src/main/java/com/github/ambry/network/CompositeNetworkClientFactory.java