mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
support lists at op field level for terseneses
This commit is contained in:
@@ -79,18 +79,22 @@ public class StatementsOwner extends RawStmtFields {
|
|||||||
List<Map<String,Object>> itemizedMaps = new ArrayList<>();
|
List<Map<String,Object>> itemizedMaps = new ArrayList<>();
|
||||||
for (Map.Entry<String, Object> entries : map.entrySet()) {
|
for (Map.Entry<String, Object> entries : map.entrySet()) {
|
||||||
Object value = entries.getValue();
|
Object value = entries.getValue();
|
||||||
if (value instanceof LinkedHashMap) {
|
if (value instanceof List listval) {
|
||||||
// reset order to favor naming first
|
Map<String,Object> stmtDetails = new LinkedHashMap<>() {{
|
||||||
LinkedHashMap<String, Object> vmap = (LinkedHashMap<String, Object>) value;
|
put("name",entries.getKey());
|
||||||
LinkedHashMap<String, Object> cp = new LinkedHashMap<>(vmap);
|
put("stmt", (List<Object>) listval);
|
||||||
|
}};
|
||||||
|
itemizedMaps.add(stmtDetails);
|
||||||
|
} else if (value instanceof LinkedHashMap vmap) {
|
||||||
|
LinkedHashMap<String, Object> cp = new LinkedHashMap<String,Object>(vmap);
|
||||||
vmap.clear();
|
vmap.clear();
|
||||||
vmap.put("name", entries.getKey());
|
vmap.put("name", entries.getKey());
|
||||||
vmap.putAll(cp);
|
vmap.putAll(cp);
|
||||||
itemizedMaps.add(vmap);
|
itemizedMaps.add(vmap);
|
||||||
} else if (value instanceof String) {
|
} else if (value instanceof String string) {
|
||||||
Map<String, Object> stmtDetails = new HashMap<>() {{
|
Map<String, Object> stmtDetails = new LinkedHashMap<>() {{
|
||||||
put("name", entries.getKey());
|
put("name", entries.getKey());
|
||||||
put("stmt", entries.getValue());
|
put("stmt", string);
|
||||||
}};
|
}};
|
||||||
itemizedMaps.add(stmtDetails);
|
itemizedMaps.add(stmtDetails);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -22,10 +22,7 @@ import io.nosqlbench.nb.api.errors.BasicError;
|
|||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class OpDef extends OpTemplate {
|
public class OpDef extends OpTemplate {
|
||||||
private final static Logger logger = LogManager.getLogger(OpDef.class);
|
private final static Logger logger = LogManager.getLogger(OpDef.class);
|
||||||
@@ -62,6 +59,8 @@ public class OpDef extends OpTemplate {
|
|||||||
});
|
});
|
||||||
} else if (op instanceof CharSequence) {
|
} else if (op instanceof CharSequence) {
|
||||||
newmap.put("stmt", op.toString());
|
newmap.put("stmt", op.toString());
|
||||||
|
} else if (op instanceof List list) {
|
||||||
|
newmap.put("stmt", list);
|
||||||
} else {
|
} else {
|
||||||
throw new BasicError("Unable to coerce a '" + op.getClass().getCanonicalName() + "' into an op template");
|
throw new BasicError("Unable to coerce a '" + op.getClass().getCanonicalName() + "' into an op template");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user