Customizing and Extending DataFlow Functionality : Writing an Operator
 
Share this page                  
Writing an Operator
Overview
LogicalGraphs written in DataFlow are modeled as directed graphs of dataflow operators, with the outputs of one operator being linked to the inputs of others, and so on. While a number of common functions are represented in the provided operator library, it may be necessary to add additional custom operators to perform the desired processing.
All operators must declare their ports, must declare their configuration properties, and must be JSON serializable. See General Requirements and Best Practices for more details.
When creating a new operator, one must always select among one of the following base classes:
ExecutableOperator: base class for "worker" operators. See Writing an Executable Operator for details.
CompositeOperator: base class for an operator that is defined in terms of other operators. See Writing a CompositeOperator for details.
DeferredCompositeOperator: base class for an operator that is defined in terms of other operators, for rare use cases. See Writing a DeferredCompositeOperator for details.
IterativeOperator: base class for an operator that iterates on its input multiple times. See Writing an IterativeOperator for details.
In addition, one should implement one of the following "mix-in" interfaces if applicable:
RecordSourceOperator: mix-in interface that indicates that an operator is a source of data. Defines a single method RecordPort getOutput().
RecordSinkOperator: mix-in interface that indicates that an operator is a sink of data. Defines a single method RecordPort getInput().
The operator class hierarchy is as follows:
/download/attachments/20480681/image2012-7-31%2014%3A45%3A3.png?version=1&modificationDate=1405715126402&api=v2