com.datastax.dse.driver.internal.core.metadata.token.EverywhereStrategy Maven / Gradle / Ivy
/*
* Copyright DataStax, Inc.
*
* This software can be used solely with DataStax Enterprise. Please consult the license at
* http://www.datastax.com/terms/datastax-dse-driver-license-terms
*/
package com.datastax.dse.driver.internal.core.metadata.token;
import com.datastax.oss.driver.api.core.metadata.Node;
import com.datastax.oss.driver.api.core.metadata.token.Token;
import com.datastax.oss.driver.internal.core.metadata.token.ReplicationStrategy;
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableSetMultimap;
import com.datastax.oss.driver.shaded.guava.common.collect.SetMultimap;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import net.jcip.annotations.ThreadSafe;
@ThreadSafe
public class EverywhereStrategy implements ReplicationStrategy {
@Override
public SetMultimap computeReplicasByToken(
Map tokenToPrimary, List ring) {
ImmutableSetMultimap.Builder result = ImmutableSetMultimap.builder();
Collection nodes = tokenToPrimary.values();
for (Token token : tokenToPrimary.keySet()) {
result = result.putAll(token, nodes);
}
return result.build();
}
}