package com.alibaba.tamper.core.config; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.alibaba.tamper.core.introspect.BatchExecutor; /** * 解析完成后的一个BeanMapping配置对象 * * <pre> * ChangeLog : * a. 1.0.2支持mapping定义alias name,用于解决map<->map对象的多种映射定义 * </pre> * * @author jianghang 2011-5-26 下午07:16:10 */ public class BeanMappingObject implements Serializable { private static final long serialVersionUID = 9099474060890980056L; private String name; // 定义mapping配置name,默认为srcClass:targetClass private String srcKey = "src"; // format上下文中src key,默认:src private Class srcClass = null; // mapping的原始class private String targetKey = "target"; // format上下文中targetkey,默认:target private Class targetClass = null; // mapping的目标class private boolean reversable = true; // 原始和目标的mapping是否可逆,如果有自定义的convertor,强制修改为不可逆 private List<BeanMappingField> beanFields = new ArrayList<BeanMappingField>(); // 具体字段的mapping配置 private boolean batch = false; // 优化参数,是否开启批量处理操作. private BeanMappingBehavior behavior = null; // mapping的处理行为参数 // ======================= 内部数据,外部请勿直接操作 ================== private BatchExecutor getBatchExecutor = null; // get操作的batch执行引擎 private BatchExecutor setBatchExecutor = null; // set操作的batch执行引擎 public String getName() { return name; } public void setName(String name) { this.name = name; } public Class getSrcClass() { return srcClass; } public void setSrcClass(Class srcClass) { this.srcClass = srcClass; } public Class getTargetClass() { return targetClass; } public void setTargetClass(Class targetClass) { this.targetClass = targetClass; } public boolean isReversable() { return reversable; } public void setReversable(boolean reversable) { this.reversable = reversable; } public List<BeanMappingField> getBeanFields() { return beanFields; } public void setBeanFields(List<BeanMappingField> beanFields) { this.beanFields = beanFields; } public void addBeanField(BeanMappingField beanField) { if (beanFields == null) { beanFields = new ArrayList<BeanMappingField>(); } beanFields.add(beanField); } public String getSrcKey() { return srcKey; } public void setSrcKey(String srcKey) { this.srcKey = srcKey; } public String getTargetKey() { return targetKey; } public void setTargetKey(String targetKey) { this.targetKey = targetKey; } public boolean isBatch() { return batch; } public void setBatch(boolean batch) { this.batch = batch; } public BatchExecutor getGetBatchExecutor() { return getBatchExecutor; } public void setGetBatchExecutor(BatchExecutor getBatchExecutor) { this.getBatchExecutor = getBatchExecutor; } public BatchExecutor getSetBatchExecutor() { return setBatchExecutor; } public void setSetBatchExecutor(BatchExecutor setBatchExecutor) { this.setBatchExecutor = setBatchExecutor; } public BeanMappingBehavior getBehavior() { return behavior; } public void setBehavior(BeanMappingBehavior behavior) { this.behavior = behavior; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }