package com.taobao.yugong.translator;
import java.util.List;
import com.taobao.yugong.common.model.record.Record;
/**
* @author agapple 2014年2月25日 下午11:38:06
* @since 1.0.0
*/
public interface DataTranslator {
/**
* 静态转换schemaName的逻辑,对于所有数据的默认转换,也允许基于每条数据动态计算schema,如果为null则忽略转换处理,代表不做转换
*/
public String translatorSchema();
/**
* 静态转换tableName的逻辑,对于所有数据的默认转换,也允许基于每条数据动态计算table,如果为null则忽略转换处理,代表不做转换
*/
public String translatorTable();
// ==================
/**
* 单条记录处理,返回true代表需要同步,返回false需要忽略,如果对于源数据有修改,直接修改对应{@linkplain Record}的属性值
*
* @param record
* @return
*/
public boolean translator(Record record);
/**
* 多条记录处理,返回为处理过后的记录. 输入/输出记录数可不相同,以输出为准
*
* @param records
* @return
*/
public List<Record> translator(List<Record> records);
}