Interface AssemblyPlanner is used to allow for lazy evaluation of a pipe assembly during planning of a
Flow
.
This allows for new languages or frameworks that may require additional meta-data from the
underlying platform or environment. Specifically field names and type information from incoming source
and outgoing sink
Tap
s.
AssemblyPlanner implementations are handed to a
FlowPlanner
instance in the order they should be evaluated.
Every instance has the opportunity to replace any prior tails with new branches and paths.
Every instance of AssemblyPlanner evaluated is given the current
FlowDef
used on the current
FlowConnector
, the current Flow instance (only initialized with source and sink Taps provided by the
FlowDef), and the tails provided by the FlowDef or those returned by prior AssemblyPlanner instances.
An AssemblyPlanner cannot change or modify the Flow, or change out any Taps used as sources, sinks, traps, or
checkpoints.
This is an experimental API and subject to change without notice.