diff --git a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/ChainingOp.java b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/ChainingOp.java deleted file mode 100644 index d9db8409f..000000000 --- a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/ChainingOp.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2022-2023 nosqlbench - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes; - -import java.util.function.Function; - -/** - *

ChainingOp<I,O>: f(I) -> O<I,O>

- *

- * Run a function on the current cached result in the current thread and replace it - * with the result of the function. ChainingOps are one way of invoking - * logic within a cycle. However, they are not intended to stand alone. - * A ChainingOp must always have an input to work on, - * provided by either a {@link CycleOp} OR another call to a {@link ChainingOp}

- * - * @param Some input type, as determined by a previous {@link CycleOp} or {@link ChainingOp} on the same thread. - * @param Some output type. - */ -public interface ChainingOp extends Op, Function { - - /** - * Transform a value from a previous action and provide the result for a subsequent action. - * - * @param lastResult object form a previous operation or action - * @return a new result - */ - @Override - O apply(I lastResult); -} diff --git a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/CycleOp.java b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/CycleOp.java index 98bb56da6..3a68f6ef2 100644 --- a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/CycleOp.java +++ b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/CycleOp.java @@ -30,9 +30,6 @@ import java.util.function.LongFunction; *

This variant of {@link Op} has the ability to see the cycle * which was previously used to select the op implementation.

* - *

It also has the ability to emit an value which can be seen a subsequent operation, if - * and only if it is a {@link ChainingOp}s.

- * *

Designer Notes

*

* If you are using the value in this call to select a specific type of behavior, it is very @@ -48,7 +45,7 @@ public interface CycleOp extends Op, LongFunction { *

Run an action for the given cycle.

* * @param value The cycle value for which an operation is run - * @return A result object which may be used by a subsequent {@link ChainingOp} + * @return A result object which may be used by result readers or validators */ @Override T apply(long value); diff --git a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/Op.java b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/Op.java index 65b3b8cc5..bf3fba469 100644 --- a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/Op.java +++ b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/Op.java @@ -27,7 +27,7 @@ package io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes; * the result type from your operation. In some cases preparing a result body to * hand down the chain is more costly, so implementing this interface allows the runtime * to be more optimized. - *
  • {@link ChainingOp}
  • + * *
  • {@link RunnableOp}
  • * *

    diff --git a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/RunnableOp.java b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/RunnableOp.java index 0bab5c267..06b6200a2 100644 --- a/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/RunnableOp.java +++ b/adapters-api/src/main/java/io/nosqlbench/adapters/api/activityimpl/uniform/flowtypes/RunnableOp.java @@ -25,9 +25,7 @@ public interface RunnableOp extends Op, Runnable { /** * Invoke the operation. If you need to see the value of the current - * cycle, then you can use {@link CycleOp} instead. If you need to - * use a cached result of a previous operation, then you may need to - * use {@link ChainingOp}. + * cycle, then you can use {@link CycleOp} instead. */ @Override void run(); diff --git a/engine-core/src/main/java/io/nosqlbench/engine/api/activityimpl/uniform/actions/StandardAction.java b/engine-core/src/main/java/io/nosqlbench/engine/api/activityimpl/uniform/actions/StandardAction.java index 4e4c15504..b4594a8e5 100644 --- a/engine-core/src/main/java/io/nosqlbench/engine/api/activityimpl/uniform/actions/StandardAction.java +++ b/engine-core/src/main/java/io/nosqlbench/engine/api/activityimpl/uniform/actions/StandardAction.java @@ -99,11 +99,9 @@ public class StandardAction, R extends Op> impl runnableOp.run(); } else if (op instanceof CycleOp cycleOp) { result = cycleOp.apply(cycle); - } else if (op instanceof ChainingOp chainingOp) { - result = chainingOp.apply(result); } else { throw new RuntimeException("The op implementation did not implement any active logic. Implement " + - "one of [RunnableOp, CycleOp, or ChainingOp]"); + "one of [RunnableOp, CycleOp]"); } // TODO: break out validation timer from execute try (Timer.Context ignored = verifierTimer.time()) {