diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java new file mode 100644 index 000000000..dcd83b306 --- /dev/null +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java @@ -0,0 +1,49 @@ +package io.nosqlbench.engine.api.activityapi.planning; + +import java.util.Arrays; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class Sequence implements OpSequence { + private final SequencerType type; + private final List elems; + private final int[] seq; + + Sequence(SequencerType type, List elems, int[] seq) { + this.type = type; + this.elems = elems; + this.seq = seq; + } + + @Override + public T get(long selector) { + int index = (int) (selector % seq.length); + index = seq[index]; + return elems.get(index); + } + + @Override + public List getOps() { + return elems; + } + + @Override + public int[] getSequence() { + return seq; + } + + public SequencerType getSequencerType() { + return type; + } + + @Override + public Sequence transform(Function func) { + return new Sequence(type, elems.stream().map(func).collect(Collectors.toList()), seq); + } + + @Override + public String toString() { + return Arrays.toString(this.seq); + } +} diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/SequencePlanner.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/SequencePlanner.java index b3d57d35e..21b76095d 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/SequencePlanner.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/SequencePlanner.java @@ -22,15 +22,13 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; -import java.util.function.Function; import java.util.function.ToLongFunction; -import java.util.stream.Collectors; public class SequencePlanner { private final static Logger logger = LoggerFactory.getLogger(SequencePlanner.class); - private SequencerType sequencerType; + private final SequencerType sequencerType; private List elements = new ArrayList<>(); - private List ratios = new ArrayList<>(); + private final List ratios = new ArrayList<>(); private int[] elementIndex; public SequencePlanner(SequencerType sequencerType) { @@ -65,43 +63,4 @@ public class SequencePlanner { return new Sequence<>(sequencerType, elements, elementIndex); } - public static class Sequence implements OpSequence { - private final SequencerType type; - private final List elems; - private final int[] seq; - - Sequence(SequencerType type, List elems, int[] seq) { - this.type = type; - this.elems = elems; - this.seq = seq; - } - - @Override - public T get(long selector) { - int index = (int) (selector % seq.length); - index = seq[index]; - return elems.get(index); - } - - @Override - public List getOps() { - return elems; - } - - @Override - public int[] getSequence() { - return seq; - } - - public SequencerType getSequencerType() { - return type; - } - - @Override - public Sequence transform(Function func) { - return new Sequence(type, elems.stream().map(func).collect(Collectors.toList()), seq); - } - - } - }