package com.liangjian.dataplatform.member.entity.vo.datanodes;

import com.liangjian.dataplatform.member.entity.po.primary.MetaCore;

/**
 * @Author: 黄子奇
 * @Date: 2019/8/26 16:40
 *
 * MetaCore -> DataNode 的转换器，
 * 利用类似责任链、spi的方式，顺序跑每个实际的Transfer，直到找到匹配的转换器，否则转换成最简单的DataNode
 */
public interface DataNodeTransfer<T extends DataNode> {

    boolean matchTypeKey(String key);

    DataNode transfer(MetaCore metaCore);

    MetaCore reTransfer(MetaCore metaCore, T node);
}
