package io.teknek.nibiru.client;
import io.teknek.nibiru.Consistency;
import io.teknek.nibiru.ConsistencyLevel;
import io.teknek.nibiru.TraceTo;
import java.util.Map;
public class SessionBuilder {
private final Client client;
private String keyspace;
private String store;
private Consistency writeConsistency;
private Consistency readConsistency;
private TraceTo traceTo;
public SessionBuilder(Client client){
this.client = client;
//writeConsistency = new Consistency().withLevel(ConsistencyLevel.N).withParamater("must-ack", 1);
writeConsistency = new Consistency().withLevel(ConsistencyLevel.IMPLIED);
readConsistency = new Consistency().withLevel(ConsistencyLevel.IMPLIED);
}
public SessionBuilder withKeyspace(String keyspace){
this.keyspace = keyspace;
return this;
}
public SessionBuilder withStore(String columnFamily){
this.store = columnFamily;
return this;
}
public SessionBuilder withWriteConsistency(ConsistencyLevel level, Map<String,Object> parameters){
writeConsistency = new Consistency().withLevel(level).withParameters(parameters);
return this;
}
public SessionBuilder withReadConsistency(ConsistencyLevel level, Map<String,Object> parameters){
readConsistency = new Consistency().withLevel(level).withParameters(parameters);
return this;
}
public SessionBuilder withTracing(TraceTo t){
this.traceTo = t;
return this;
}
public Session build(){
return new Session(client, keyspace, store, writeConsistency, readConsistency, traceTo);
}
}