improve ParsedOp api

This commit is contained in:
Jonathan Shook 2021-12-20 10:03:41 -06:00
parent 0b0602c436
commit 4420e56cfb
4 changed files with 20 additions and 5 deletions

View File

@ -0,0 +1,15 @@
package io.nosqlbench.engine.api.templating;
import java.util.function.LongFunction;
public class NamedTarget<E extends Enum<E>> {
public final E enumId;
public final String field;
public final LongFunction<?> targetFunction;
public NamedTarget(E enumId, String matchingOpFieldName, LongFunction<?> value) {
this.enumId = enumId;
this.field = matchingOpFieldName;
this.targetFunction = value;
}
}

View File

@ -20,7 +20,7 @@ public class DirectOpMapper implements OpMapper<DirectCall> {
@Override
public OpDispenser<DirectCall> apply(ParsedOp cmd) {
String pkg = cmd.getOptionalValue("package", String.class).orElse("java.lang");
String pkg = cmd.getOptionalStaticValue("package", String.class).orElse("java.lang");
String cls = cmd.getStaticValue("class");
String fq = pkg + "." + cls;
Class<?> clazz = null;
@ -30,7 +30,7 @@ public class DirectOpMapper implements OpMapper<DirectCall> {
Class<?> finalClazz = clazz;
Optional<Field> staticfield =
cmd.getOptionalValue("staticfield", String.class)
cmd.getOptionalStaticValue("staticfield", String.class)
.map(name -> {
try {
return finalClazz.getDeclaredField(name);

View File

@ -11,7 +11,7 @@ public class StdoutOpDispenser implements OpDispenser<StdoutOp> {
private final LongFunction<?> objectFunction;
public StdoutOpDispenser(ParsedOp cmd, LongFunction<StdoutSpace> ctxfunc) {
objectFunction = cmd.getAsFunction("stmt", Object.class);
objectFunction = cmd.getAsRequiredFunction("stmt", Object.class);
this.ctxfunc = ctxfunc;
}

View File

@ -29,7 +29,7 @@ public interface StaticFieldReader {
<T> T getStaticValueOr(String name, T defaultValue);
<T> Optional<T> getOptionalValue(String field, Class<T> classOfT);
<T> Optional<T> getOptionalStaticValue(String field, Class<T> classOfT);
void assertDefinedStatic(String... fields);
// void assertDefinedStatic(String... fields);
}