All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.datastax.dse.driver.internal.core.metadata.token.DseReplicationStrategyFactory 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.internal.core.context.InternalDriverContext;
import com.datastax.oss.driver.internal.core.metadata.token.DefaultReplicationStrategyFactory;
import com.datastax.oss.driver.internal.core.metadata.token.ReplicationStrategy;
import com.datastax.oss.driver.shaded.guava.common.base.Preconditions;
import java.util.Map;
import net.jcip.annotations.ThreadSafe;

@ThreadSafe
public class DseReplicationStrategyFactory extends DefaultReplicationStrategyFactory {
  public DseReplicationStrategyFactory(InternalDriverContext context) {
    super(context);
  }

  @Override
  public ReplicationStrategy newInstance(Map replicationConfig) {
    String strategyClass = replicationConfig.get("class");
    Preconditions.checkNotNull(
        strategyClass, "Missing replication strategy class in " + replicationConfig);
    switch (strategyClass) {
      case "org.apache.cassandra.locator.EverywhereStrategy":
        return new EverywhereStrategy();
      default:
        return super.newInstance(replicationConfig);
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy