class MultiServerClusterMonitor implements ClusterMonitor {

    @Override
    public String getCurrentHostServer(SessionID sid) throws SessionException {
        if (serviceConfig.isUseInternalRequestRoutingEnabled()) {
            String serverID = locateCurrentHostServer(sid);
            if (serverID == null) {
                // Is this block necessary? Can locateCurrentHostServer ever return null?
                return sid.getSessionServerID();
            }
            return serverID;
        } else {
            return sid.getSessionServerID();
        }
    }

    public  MultiServerClusterMonitor(
            SessionService sessionService,
            Debug sessionDebug,
            SessionServiceConfig serviceConfig,
            SessionServerConfig serverConfig);
    @VisibleForTesting  MultiServerClusterMonitor(
            SessionService sessionService,
            Debug sessionDebug,
            SessionServiceConfig serviceConfig,
            SessionServerConfig serverConfig,
            ClusterStateServiceFactory clusterStateServiceFactory);

}