Class OpFunctionComposition
This is where operations are customized to support special testing or analysis capabilities. The behaviors here are not adapter-specific, but can be specialized by adapter-provided logic in some cases.
In every case, the original dispenser and op instances are retained as in normal cycle execution, although they may be used differently. For each new behavior, both the original dispenser and the original op produced by it are wrapped by custom logic which can functionally override or extend them.
The current behaviors which are supported are assembled in a fixed topology when used. In other words, users can't simply layer customizations in any order or arrangement they choose.
To illustrate, an example of all of these together will be presented below:
dryrun ( verify ( print ( capture ( op ))))
This will change to be more in a future refinement, when all op synthesis modifiers will
be subsumed into BaseOpDispenser
Working from the outside-in, each is explained here:
DryrunOp(dryrun) - Do not exeucute the operation, but prepare as if you were going to ( including any modifiers) and continueAssertingOp(verify) - apply any assertions specified by the user, and throw anResultVerificationErrorif the assertions are false, or continue if assertions are trueResultPrintingOp(print) - Print the result of executing the op and continueCapturingOp(capture) - Capture the specified set of named fields from the result of the operation, and continue
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <OP extends CycleOp<?>,SPACE extends Space>
OpDispenser<? extends OP> wrapOptionally(DriverAdapter<? extends OP, ? extends SPACE> adapter, OpDispenser<? extends OP> dispenser, ParsedOp pop, Dryrun dryrun)
-
Field Details
-
logger
public static final org.apache.logging.log4j.Logger logger
-
-
Constructor Details
-
OpFunctionComposition
public OpFunctionComposition()
-
-
Method Details
-
wrapOptionally
public static <OP extends CycleOp<?>,SPACE extends Space> OpDispenser<? extends OP> wrapOptionally(DriverAdapter<? extends OP, ? extends SPACE> adapter, OpDispenser<? extends OP> dispenser, ParsedOp pop, Dryrun dryrun)
-