mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
switch to ParsedTemplate in cqld4
This commit is contained in:
@@ -6,28 +6,28 @@ import io.nosqlbench.driver.cqld4.opdispensers.Cqld4PreparedStatementDispenser;
|
||||
import io.nosqlbench.driver.cqld4.opdispensers.Cqld4SimpleCqlStatementDispenser;
|
||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
||||
import io.nosqlbench.engine.api.templating.CommandTemplate;
|
||||
import io.nosqlbench.engine.api.templating.ParsedCommand;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Cqld4OpMapper implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
||||
|
||||
private final Function<OpTemplate,OpDispenser<Cqld4Op>> templateToDispenser;
|
||||
private final Function<OpTemplate, OpDispenser<Cqld4Op>> templateToDispenser;
|
||||
private final CqlSession session;
|
||||
|
||||
public Cqld4OpMapper(CqlSession session, OpTemplate opTemplate) {
|
||||
public Cqld4OpMapper(CqlSession session, OpTemplate optpl) {
|
||||
this.session = session;
|
||||
CommandTemplate cmd = new CommandTemplate(opTemplate);
|
||||
templateToDispenser = resolve(opTemplate);
|
||||
ParsedCommand cmd = new ParsedCommand(optpl);
|
||||
templateToDispenser = resolve(cmd);
|
||||
}
|
||||
|
||||
private Function<OpTemplate, OpDispenser<Cqld4Op>> resolve(OpTemplate) {
|
||||
if (cmd.isStatic("prepared")) {
|
||||
private Function<OpTemplate, OpDispenser<Cqld4Op>> resolve(ParsedCommand cmd) {
|
||||
if (cmd.isStatic("prepared") && cmd.getStatic("prepared", boolean.class)) {
|
||||
return new Cqld4PreparedStatementDispenser(cmd);
|
||||
} else if (cmd.isStatic("batch")) {
|
||||
return ot -> new Cqld4BatchStatementDispenser(session,cmd);
|
||||
return ot -> new Cqld4BatchStatementDispenser(session, cmd);
|
||||
} else {
|
||||
return ot -> new Cqld4SimpleCqlStatementDispenser(session,cmd);
|
||||
return ot -> new Cqld4SimpleCqlStatementDispenser(session, cmd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,23 +2,20 @@ package io.nosqlbench.driver.cqld4.opdispensers;
|
||||
|
||||
import com.datastax.oss.driver.api.core.CqlSession;
|
||||
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
||||
import io.nosqlbench.engine.api.templating.CommandTemplate;
|
||||
import io.nosqlbench.engine.api.templating.ParsedCommand;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Cqld4BatchStatementDispenser implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
||||
public class Cqld4BatchStatementDispenser implements OpDispenser<Cqld4Op> {
|
||||
private final CqlSession session;
|
||||
private final CommandTemplate cmd;
|
||||
private final ParsedCommand cmd;
|
||||
|
||||
public Cqld4BatchStatementDispenser(CqlSession session, CommandTemplate cmd) {
|
||||
public Cqld4BatchStatementDispenser(CqlSession session, ParsedCommand cmd) {
|
||||
this.session = session;
|
||||
this.cmd = cmd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OpDispenser<Cqld4Op> apply(OpTemplate opTemplate) {
|
||||
public Cqld4Op apply(long value) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@ package io.nosqlbench.driver.cqld4.opdispensers;
|
||||
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
||||
import io.nosqlbench.engine.api.templating.CommandTemplate;
|
||||
import io.nosqlbench.engine.api.templating.ParsedCommand;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Cqld4PreparedStatementDispenser implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
||||
public Cqld4PreparedStatementDispenser(CommandTemplate cmd) {
|
||||
public Cqld4PreparedStatementDispenser(ParsedCommand cmd) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,14 +5,14 @@ import com.datastax.oss.driver.api.core.cql.SimpleStatement;
|
||||
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
||||
import io.nosqlbench.driver.cqld4.optypes.Cqld4SimpleCqlStatement;
|
||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
||||
import io.nosqlbench.engine.api.templating.CommandTemplate;
|
||||
import io.nosqlbench.engine.api.templating.ParsedCommand;
|
||||
|
||||
public class Cqld4SimpleCqlStatementDispenser implements OpDispenser<Cqld4Op> {
|
||||
|
||||
private final CqlSession session;
|
||||
private final CommandTemplate cmd;
|
||||
private final ParsedCommand cmd;
|
||||
|
||||
public Cqld4SimpleCqlStatementDispenser(CqlSession session, CommandTemplate cmd) {
|
||||
public Cqld4SimpleCqlStatementDispenser(CqlSession session, ParsedCommand cmd) {
|
||||
this.session = session;
|
||||
this.cmd = cmd;
|
||||
}
|
||||
|
||||
@@ -51,11 +51,11 @@ public class ParsedCommand implements LongFunction<Map<String, ?>> {
|
||||
*
|
||||
* @param ot An OpTemplate representing an operation to be performed in a native driver.
|
||||
*/
|
||||
ParsedCommand(OpTemplate ot) {
|
||||
public ParsedCommand(OpTemplate ot) {
|
||||
this(ot, List.of());
|
||||
}
|
||||
|
||||
ParsedCommand(OpTemplate ot, List<Function<Map<String, Object>, Map<String, Object>>> preprocessors) {
|
||||
public ParsedCommand(OpTemplate ot, List<Function<Map<String, Object>, Map<String, Object>>> preprocessors) {
|
||||
this.name = ot.getName();
|
||||
|
||||
Map<String, Object> map = ot.getOp().orElseThrow();
|
||||
@@ -112,4 +112,22 @@ public class ParsedCommand implements LongFunction<Map<String, ?>> {
|
||||
});
|
||||
return map;
|
||||
}
|
||||
|
||||
public boolean isStatic(String prepared) {
|
||||
return statics.containsKey(prepared);
|
||||
}
|
||||
|
||||
public <T> T getStatic(String prepared, Class<T> classOfT) {
|
||||
return (T) statics.get(prepared);
|
||||
}
|
||||
|
||||
public <T> T get(String fieldName, long input) {
|
||||
if (statics.containsKey(fieldName)) {
|
||||
return (T) statics.get(fieldName);
|
||||
}
|
||||
if (dynamics.containsKey(fieldName)) {
|
||||
return (T) dynamics.get(fieldName).apply(input);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user