package com.walker.store; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; /** * 抽象的存储对象定义,用于在不同数据源中写入数据。 * @author shikeying * @date 2015年12月16日 * */ public class AbstractStore implements Storeable { protected transient final Logger logger = LoggerFactory.getLogger(this.getClass()); private String id; private String description; protected StoreStrategy storeStrategy = null; private MetaDataEngine metaDataEngine = null; @Override public MetaDataEngine getMetaDataEngine() { return metaDataEngine; } @Override public void setMetaDataEngine(MetaDataEngine metaDataEngine) { this.metaDataEngine = metaDataEngine; } @Override public void initialize() { if(this.storeStrategy == null){ throw new IllegalStateException("未配置存储策略,无法创建对象:" + this.getClass().getName()); } } @Override public void destroy() { if(storeStrategy != null){ storeStrategy = null; } } public void setId(String id) { this.id = id; } public void setDescription(String description) { this.description = description; } @Override public String getId() { return this.id; } @Override public String getDescription() { return this.description; } @Override public StoreStrategy getStoreStrategy() { return storeStrategy; } @Override public void write(String srcName, String createTableSQL, Object parameter, List datas) throws Exception { } @Override public void setStoreStrategy(StoreStrategy storeStrategy) { this.storeStrategy = storeStrategy; } @Override public String toString(){ return new StringBuilder().append("[id=").append(id) .append(", description=").append(description) .append("]").toString(); } }