This defines filtering channels that can apply transformations to objects
as they are read and/or written.
A completely filtered channel can be created using the FilteredChannel
factory, or a filtered end can be created for an existing channel.
Only a PoisonFilter
is included in this package.
User-defined filters can be created by implementing the Filter
interface to define the transformation operation to apply on data objects.