Class Pipe is used to name branches in pipe assemblies, and as a base class for core processing model types, specifically {@link Each}, {@link Every}, {@link GroupBy}, {@link CoGroup}, {@link Merge}, {@link HashJoin}, and {@link SubAssembly}.
Pipes are chained together through their constructors.
To effect a split in the pipe, simply pass a Pipe instance to two or more constructors of subsequent Pipe instances. A join can be achieved by passing two or more Pipe instances to a {@link CoGroup} or {@link HashJoin} pipe.
A merge can be achieved by passing two or more Pipe instances to a {@link GroupBy} or {@link Merge} pipe.
@see Each
@see Every
@see GroupBy
@see Merge
@see CoGroup
@see HashJoin
@see SubAssembly