
cn.featherfly.common.db.data.AbstractDataImportor Maven / Gradle / Ivy
package cn.featherfly.common.db.data;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import cn.featherfly.common.lang.LangUtils;
/**
*
* 抽象导入器
*
*
* @author zhongj
*/
public abstract class AbstractDataImportor extends AbstractDataImpExp implements DataImportor{
/**
*
* 添加预执行sql
*
* @param prepareSql prepareSql
*/
public void addPrepareSql(String prepareSql) {
if (LangUtils.isNotEmpty(prepareSql)) {
this.prepareSqls.add(prepareSql);
}
}
/**
*
* 添加预执行sql
*
* @param prepareSqls prepareSqls
*/
public void addPrepareSql(String...prepareSqls) {
if (LangUtils.isNotEmpty(prepareSqls)) {
for (String prepareSql : prepareSqls) {
this.prepareSqls.add(prepareSql);
}
}
}
/**
*
* 添加过滤器
*
* @param filter filter
*/
public void addFilter(DataFilter filter) {
if (LangUtils.isNotEmpty(filter)) {
this.filters.add(filter);
}
}
/**
*
* 添加过滤器
*
* @param filters dataFilters
*/
public void addFilter(DataFilter...filters) {
if (LangUtils.isNotEmpty(filters)) {
for (DataFilter filter : filters) {
this.filters.add(filter);
}
}
}
/**
*
* 添加数据变换器
*
* @param transformer transformer
*/
public void addTransformers(DataTransformer transformer) {
if (LangUtils.isNotEmpty(transformer)) {
this.transformers.add(transformer);
}
}
/**
*
* 添加数据变换器
*
* @param transformers transformer
*/
public void addTransformers(DataTransformer...transformers) {
if (LangUtils.isNotEmpty(filters)) {
for (DataTransformer transformer : transformers) {
this.transformers.add(transformer);
}
}
}
/**
*
* 数据过滤
*
* @param recordModel recordModel
* @param conn conn
* @return RecordModel
*/
protected boolean filtdate(RecordModel recordModel, Connection conn) {
// 过滤
if (LangUtils.isNotEmpty(filters)) {
for (DataFilter filter : filters) {
if (filter.filter(recordModel, conn)) {
logger.debug("过滤该条数据, {}", recordModel);
return true;
}
}
}
return false;
}
/**
*
* 数据变换
*
* @param recordModel recordModel
* @return RecordModel
*/
protected RecordModel transform(RecordModel recordModel) {
// 数据变换
if (LangUtils.isNotEmpty(transformers)) {
for (DataTransformer transformer : transformers) {
recordModel = transformer.transform(recordModel);
}
}
return recordModel;
}
// ********************************************************************
// peroperty
// ********************************************************************
private boolean fkCheck;
private ExistPolicy existPolicy = ExistPolicy.exception;
private TransactionPolicy transactionPolicy = TransactionPolicy.all;
private List prepareSqls = new ArrayList();
private List filters = new ArrayList();
private List transformers = new ArrayList();
/**
* 返回prepareSqls
* @return prepareSqls
*/
public List getPrepareSqls() {
return prepareSqls;
}
/**
* 设置prepareSqls
* @param prepareSqls prepareSqls
*/
public void setPrepareSqls(List prepareSqls) {
this.prepareSqls = prepareSqls;
}
/**
* 返回transformers
* @return transformers
*/
public List getTransformers() {
return transformers;
}
/**
* 设置transformers
* @param transformers transformers
*/
public void setTransformers(List transformers) {
this.transformers = transformers;
}
/**
* 返回existPolicy
* @return existPolicy
*/
public ExistPolicy getExistPolicy() {
return existPolicy;
}
/**
* 设置existPolicy
* @param existPolicy existPolicy
*/
public void setExistPolicy(ExistPolicy existPolicy) {
this.existPolicy = existPolicy;
}
/**
* 返回transactionPolicy
* @return transactionPolicy
*/
public TransactionPolicy getTransactionPolicy() {
return transactionPolicy;
}
/**
* 设置transactionPolicy
* @param transactionPolicy transactionPolicy
*/
public void setTransactionPolicy(TransactionPolicy transactionPolicy) {
this.transactionPolicy = transactionPolicy;
}
/**
* 返回fkCheck
* @return fkCheck
*/
public boolean isFkCheck() {
return fkCheck;
}
/**
* 设置fkCheck
* @param fkCheck fkCheck
*/
public void setFkCheck(boolean fkCheck) {
this.fkCheck = fkCheck;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy