anchor.diff:  [[wrapping-a-beam-io__start]]
   == Limitations
   
  -This part is limited to particular kinds of link:https://beam.apache.org/[Beam] `PTransform`:
  +This part is limited to specific kinds of link:https://beam.apache.org/[Beam] `PTransform`:
   
  -- the `PTransform<PBegin, PCollection<?>>` for the inputs
  -- the `PTransform<PCollection<?>, PDone>` for the outputs. The outputs also must use a single (composite or not) `DoFn` in their `apply` method.
  +- `PTransform<PBegin, PCollection<?>>` for inputs.
  +- `PTransform<PCollection<?>, PDone>` for outputs. Outputs must use a single (composite or not) `DoFn` in their `apply` method.
   
  -== Wrap an input
  +== Wrapping an input
   
  -Assume you want to wrap an input like this one (based on existing Beam ones):
  +To illustrate the input wrapping, this procedure uses the following input as a starting point (based on existing Beam inputs):
   
   [source,java]
   ----
  
positive.code: }
  ----
  
  To wrap the Read in a framework component you create a transform delegating to this one with a `@PartitionMapper` annotation
  at least (you likely want to follow the best practices as well adding `@Icon` and `@Version`) and using `@Option` constructor injections
  to configure the component:
  
  [source,java]
  ----
  
negative.code: 
  == Tip
  
  Note that the `org.talend.sdk.component.runtime.beam.transform.DelegatingTransform` class fully delegates the "expansion" to another transform. Therefore, you can extend it and implement the configuration mapping:
  
  [source,java]
  ----
  