Transformation是顶层的抽象类,所有的物理Transformation基础了PhysicalTransformation,其他类型的Transformation均为虚拟的Transformation。

    在PhysicalTransformation抽象类中,定义了
    public abstract void setChainingStrategy(ChainingStrategy strategy);
    模板方法,该方法要求其子类提供算子合并策略ChainingStrategy,该参数在后续计算优化算子合并时会用到。
    ps:ChainingStrategy是一个枚举类,有HEAD、NEVER和ALWAYS三个枚举值,HEAD标识该算子仅作为头,不参与合并链,但支持后继合并到自己,NEVER标识该算子既不向前合并也不被后继合并,要作为独立节点处理,ALWAYS标识该算子的合并意愿很强,支持随时按规则合并。

    在PhysicalTransformation的子类中,由于该全部子类是支持执行物理转换,意思是说该算子时一定产生数据输入和输出的,所以在全部子类中都Transformation作为input同时持有一个StreamOperatorFactory对象,用于产生对应的StreamOperator将来作为outPut;
    b、其他的逻辑算子转换
    其他逻辑转换算子则仅持有Transformation作为input输入以及一些其他的属性。

    StreamOperator
    StreamOperator是一个接口,标识了流计算的具体算子转换对象接口,具备相关的生命周期、快照等行为。