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.driver.cqld4.opdispensers.Cqld4SimpleCqlStatementDispenser;
|
||||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
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;
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class Cqld4OpMapper implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
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;
|
private final CqlSession session;
|
||||||
|
|
||||||
public Cqld4OpMapper(CqlSession session, OpTemplate opTemplate) {
|
public Cqld4OpMapper(CqlSession session, OpTemplate optpl) {
|
||||||
this.session = session;
|
this.session = session;
|
||||||
CommandTemplate cmd = new CommandTemplate(opTemplate);
|
ParsedCommand cmd = new ParsedCommand(optpl);
|
||||||
templateToDispenser = resolve(opTemplate);
|
templateToDispenser = resolve(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Function<OpTemplate, OpDispenser<Cqld4Op>> resolve(OpTemplate) {
|
private Function<OpTemplate, OpDispenser<Cqld4Op>> resolve(ParsedCommand cmd) {
|
||||||
if (cmd.isStatic("prepared")) {
|
if (cmd.isStatic("prepared") && cmd.getStatic("prepared", boolean.class)) {
|
||||||
return new Cqld4PreparedStatementDispenser(cmd);
|
return new Cqld4PreparedStatementDispenser(cmd);
|
||||||
} else if (cmd.isStatic("batch")) {
|
} else if (cmd.isStatic("batch")) {
|
||||||
return ot -> new Cqld4BatchStatementDispenser(session,cmd);
|
return ot -> new Cqld4BatchStatementDispenser(session, cmd);
|
||||||
} else {
|
} 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 com.datastax.oss.driver.api.core.CqlSession;
|
||||||
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
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.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 OpDispenser<Cqld4Op> {
|
||||||
|
|
||||||
public class Cqld4BatchStatementDispenser implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
|
||||||
private final CqlSession session;
|
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.session = session;
|
||||||
this.cmd = cmd;
|
this.cmd = cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OpDispenser<Cqld4Op> apply(OpTemplate opTemplate) {
|
public Cqld4Op apply(long value) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package io.nosqlbench.driver.cqld4.opdispensers;
|
|||||||
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
import io.nosqlbench.driver.cqld4.Cqld4Op;
|
||||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
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;
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class Cqld4PreparedStatementDispenser implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
public class Cqld4PreparedStatementDispenser implements Function<OpTemplate, OpDispenser<Cqld4Op>> {
|
||||||
public Cqld4PreparedStatementDispenser(CommandTemplate cmd) {
|
public Cqld4PreparedStatementDispenser(ParsedCommand cmd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.Cqld4Op;
|
||||||
import io.nosqlbench.driver.cqld4.optypes.Cqld4SimpleCqlStatement;
|
import io.nosqlbench.driver.cqld4.optypes.Cqld4SimpleCqlStatement;
|
||||||
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
|
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> {
|
public class Cqld4SimpleCqlStatementDispenser implements OpDispenser<Cqld4Op> {
|
||||||
|
|
||||||
private final CqlSession session;
|
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.session = session;
|
||||||
this.cmd = cmd;
|
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.
|
* @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());
|
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();
|
this.name = ot.getName();
|
||||||
|
|
||||||
Map<String, Object> map = ot.getOp().orElseThrow();
|
Map<String, Object> map = ot.getOp().orElseThrow();
|
||||||
@@ -112,4 +112,22 @@ public class ParsedCommand implements LongFunction<Map<String, ?>> {
|
|||||||
});
|
});
|
||||||
return map;
|
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