anchor.diff:  }
   ----
   
  -== Wrap an output
  +== Wrapping an output
   
  -Assume you want to wrap an output like this one (based on existing Beam ones):
  +To illustrate the output wrapping, this procedure uses the following output as a starting point (based on existing Beam outputs):
   
   [source,java]
   ----
  
positive.code: }
  ----
  
  You can wrap this output exactly the same way than for the inputs but using `@Processor` this time:
  
  [source,java]
  ----
  @PartitionMapper(family = "myfamily", name = "myname")
  public class WrapRead extends PTransform<PCollection<String>, PDone> {
    private PTransform<PCollection<String>, PDone> delegate;
  
    public WrapRead(@Option("dataset") final WrapReadDataSet dataset) {
      delegate = TheIO.write().withConfiguration(this.createConfigurationFrom(dataset));
    }
  
  
negative.code: [[wrapping-a-beam-io__start]]
  == Limitations
  
  This part is limited to specific kinds of link:https://beam.apache.org/[Beam] `PTransform`:
  
  - `PTransform<PBegin, PCollection<?>>` for inputs.
  - `PTransform<PCollection<?>, PDone>` for outputs. Outputs must use a single (composite or not) `DoFn` in their `apply` method.
  
  == Wrapping an input
  
  To illustrate the input wrapping, this procedure uses the following input as a starting point (based on existing Beam inputs):
  
  [source,java]
  ----
  