package com.taobao.yugong.translator;
import java.util.List;
import com.google.common.collect.Lists;
import com.taobao.yugong.common.model.record.Record;
import com.taobao.yugong.translator.TableTranslators.TableTranslator;
/**
* @author agapple 2014年2月25日 下午11:38:06
* @since 1.0.0
*/
public class AbstractDataTranslator implements DataTranslator {
protected TableTranslator translator;
/**
* 转换schemaName,如果返回null,则以每条数据Record的转义为准
*/
public String translatorSchema() {
return null;
}
/**
* 转换tableName,如果返回null,则以每条数据Record的转义为准
*/
public String translatorTable() {
return null;
}
public boolean translator(Record record) {
return true;
}
public List<Record> translator(List<Record> records) {
List<Record> result = Lists.newArrayList();
for (Record record : records) {
String schema = translatorSchema();
if (schema != null) {
record.setSchemaName(schema);
}
String table = translatorTable();
if (table != null) {
record.setTableName(table);
}
if (translator != null) {
record = translator.translator(record);
}
if (record != null && translator(record)) {
result.add(record);
}
}
return result;
}
public TableTranslator getTranslator() {
return translator;
}
public void setTranslator(TableTranslator translator) {
this.translator = translator;
}
}