com.datastax.driver.dse.DseConfiguration Maven / Gradle / Ivy
Show all versions of dse-java-driver-core Show documentation
/*
* 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.driver.dse;
import com.datastax.driver.core.Configuration;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.Policies;
import com.datastax.driver.dse.graph.GraphOptions;
import java.util.UUID;
/**
* The configuration of a {@link DseCluster}.
*
* This class extends the CQL driver's {@link Configuration} to add DSE-specific options.
*/
public class DseConfiguration extends Configuration {
private final GraphOptions graphOptions;
private final String applicationName;
private final String applicationVersion;
private final UUID clusterId;
DseConfiguration(
Configuration toCopy,
GraphOptions graphOptions,
String applicationName,
String applicationVersion,
UUID clusterId) {
super(toCopy);
this.graphOptions = graphOptions;
this.applicationName = applicationName;
this.applicationVersion = applicationVersion;
this.clusterId = clusterId;
}
/**
* Returns the default graph options to use for the cluster.
*
* @return the default graph options.
*/
public GraphOptions getGraphOptions() {
return graphOptions;
}
/** @return the application name to use for the cluster, or null if not set. */
public String getApplicationName() {
return applicationName;
}
/** @return the application version to use for the cluster, or null if not set. */
public String getApplicationVersion() {
return applicationVersion;
}
/** @return the id assigned to the cluster, or null if it should be generated internally. */
public UUID getClusterId() {
return clusterId;
}
/**
* Builds an instance of the default load balancing policy used for DSE.
*
*
It is the core driver's default policy (as returned by {@link
* Policies#defaultLoadBalancingPolicy()}), wrapped into a {@link DseLoadBalancingPolicy}.
*
* @return the new instance.
*/
public static LoadBalancingPolicy defaultLoadBalancingPolicy() {
return new DseLoadBalancingPolicy(Policies.defaultLoadBalancingPolicy());
}
}