Type Parameters:
D - The data carrier parameter type. Any OpFacets implementation can be used to carry any state which is needed to support a specific type of operation.
All Superinterfaces:
java.lang.Comparable<CycleResult>, CompletedOp<D>, CycleMutable, CycleReadable, CycleResult, FailedOp<D>, Payload<D>, ResultReadable, SkippedOp<D>, StartedOp<D>, SucceededOp<D>, TrackedOp<D>
All Known Implementing Classes:
EventedOpImpl, OpImpl

public interface OpFacets<D>
extends TrackedOp<D>, StartedOp<D>, SucceededOp<D>, FailedOp<D>, SkippedOp<D>
This interface represents the union of interfaces needed for all of the behavioral facets of a useful Op implementation. By implementing these faceted interfaces by way of the OpFacets interface, an implementation can be a state carrier that exposes a contextual interface by declaration. While this not a secure method of enforcing type and interface over shared state, it does provide a high degree of simplification for developers who wish to constrain the operational view of an object according to an implied state machine.