in folsom/src/main/java/com/spotify/folsom/ketama/KetamaMemcacheClient.java [66:79]
public <T> CompletionStage<T> send(final Request<T> request) {
if (request instanceof MultiRequest) {
// T for Request should always be List<GetResult<byte[]>> here
// which means that MultiRequest should have T = GetResult<byte[]>
final MultiRequest<GetResult<byte[]>> multiRequest =
(MultiRequest<GetResult<byte[]>>) request;
if (multiRequest.getKeys().size() > 1) {
return (CompletionStage<T>) sendSplitRequest(multiRequest);
}
} else if (request instanceof AllRequest) {
return sendToAll((AllRequest<T>) request);
}
return getClient(request.getKey()).send(request);
}