Can someone refer me to discussion of this design question?

Why was processElement turned from an abstract method in Dataflow to an
annotation in  Beam?

<https://beam.apache.org/documentation/sdks/javadoc/0.5.0/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html>
The JavaDocs for ProcessElement say:
<https://beam.apache.org/documentation/sdks/javadoc/2.2.0/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html>

A subclass of *DoFn* must have a method with this annotation. The signature
of this method must satisfy the following constraints:



- Its first argument must be a * DoFn.ProcessContext*.

- If one of its arguments is a subtype of *RestrictionTracker*, then it is
a splittable  ...

- It must return  void



Such a specification is exactly what  a type  declaration is meant to do
--   it seems that a method, rather than an annotation, is just right for
this purpose.



-- 


*JOSHUA FOX*
Principal Software Architect | Freightos



*T (Israel): *+972-545691165 | *T (US)*:  +1-3123400953
Smooth shipping.

Reply via email to