diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4CqlBaseOpDispenser.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4CqlBaseOpDispenser.java index 9de9b4884..000aac9df 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4CqlBaseOpDispenser.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4CqlBaseOpDispenser.java @@ -18,12 +18,26 @@ package io.nosqlbench.adapter.cqld4.opdispensers; */ +import com.datastax.oss.driver.api.core.cql.ColumnDefinition; +import com.datastax.oss.driver.api.core.cql.ColumnDefinitions; +import com.datastax.oss.driver.api.core.cql.Row; import io.nosqlbench.adapter.cqld4.Cqld4DriverAdapter; import io.nosqlbench.adapter.cqld4.optypes.Cqld4BaseOp; import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; import io.nosqlbench.adapters.api.templating.ParsedOp; +import io.nosqlbench.virtdata.core.templates.CapturePoint; +import io.nosqlbench.virtdata.core.templates.CapturePointException; +import io.nosqlbench.virtdata.core.templates.CapturePoints; +import io.nosqlbench.virtdata.core.templates.UniformVariableCapture; -public abstract class Cqld4CqlBaseOpDispenser extends Cqld4BaseOpDispenser { +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public abstract class Cqld4CqlBaseOpDispenser extends Cqld4BaseOpDispenser + implements UniformVariableCapture> +{ public Cqld4CqlBaseOpDispenser(Cqld4DriverAdapter adapter, ParsedOp op) { super(adapter, op); @@ -31,4 +45,35 @@ public abstract class Cqld4CqlBaseOpDispenser extends Cqld @Override public abstract T getOp(long cycle); + + @Override + public Function, Map> captureF(CapturePoints> points) { + Function, Map> f = (List result) -> { + if (result.size() != 1) { + throw new CapturePointException( + "result contained " + result.size() + " rows, required exactly 1"); + } + Row row = result.get(0); + ColumnDefinitions coldefs = row.getColumnDefinitions(); + Map values = new HashMap<>(coldefs.size()); + + if (points.isGlob()) { + for (ColumnDefinition coldef : coldefs) { + String colname = coldef.getName().toString(); + values.put(colname, row.getObject(colname)); + } + } else { + for (CapturePoint> point : points) { + String sourceName = point.getSourceName(); + Object value = row.getObject(point.getSourceName()); + Object recast = point.getAsCast().cast(value); + values.put(point.getAsName(), recast); + } + } + + return values; + }; + return f; + } + } diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/optypes/Cqld4CqlOp.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/optypes/Cqld4CqlOp.java index 4e632f7c1..ab848805f 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/optypes/Cqld4CqlOp.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/optypes/Cqld4CqlOp.java @@ -50,7 +50,7 @@ import java.util.function.Function; public abstract class Cqld4CqlOp - implements Cqld4BaseOp>, UniformVariableCapture>, OpGenerator, OpResultSize { + implements Cqld4BaseOp>, OpGenerator, OpResultSize { private final static Logger logger = LogManager.getLogger(Cqld4CqlOp.class); @@ -168,34 +168,6 @@ public abstract class Cqld4CqlOp return next; } - @Override - public Function, Map> captureF(CapturePoints> points) { - Function,Map> f = (List result) -> { - if (result.size()!=1) { - throw new CapturePointException("result contained " + result.size() + " rows, required exactly 1"); - } - Row row = result.get(0); - ColumnDefinitions coldefs = row.getColumnDefinitions(); - Map values = new HashMap<>(coldefs.size()); - - if (points.isGlob()) { - for (ColumnDefinition coldef : coldefs) { - String colname = coldef.getName().toString(); - values.put(colname,row.getObject(colname)); - } - } else { - for (CapturePoint> point : points) { - String sourceName = point.getSourceName(); - Object value = row.getObject(point.getSourceName()); - Object recast = point.getAsCast().cast(value); - values.put(point.getAsName(), recast); - } - } - - return values; - }; - return f; - } public abstract Statement getStmt();