package com.alibaba.tamper.core.config; import java.io.Serializable; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.alibaba.tamper.core.introspect.GetExecutor; import com.alibaba.tamper.core.introspect.SetExecutor; import com.alibaba.tamper.process.convertor.Convertor; /** * 解析完成后的一个BeanMapping的field配置对象 * * <pre> * changeLog * v1.0.2 * 两种条件满足时可以触发使用nestObject对象 * a. mapping=true,需要进行递归映射,会读取nestObject定义的映射规则 * b. 针对field为collection类型,需要进行循环映射,会读取nestObject定义的映射规则 * </pre> * * @author jianghang 2011-5-23 下午04:25:06 */ public class BeanMappingField implements Serializable { private static final long serialVersionUID = 3673414855182044438L; private BeanMappingFieldAttributes srcField = new BeanMappingFieldAttributes(); // 源属性配置信息 private BeanMappingFieldAttributes targetField = new BeanMappingFieldAttributes(); // 目标属性配置信息 private String defaultValue = null; // 默认值,配置文件中定义的字符串 private String convertor = null; // 自定义conveterName private Class convertorClass = null; // 指定convertor的class private String script = null; // format script字符串 private boolean mapping = false; // 是否深度递归mapping private String nestName = null; // 定义嵌套映射的名字 private BeanMappingBehavior behavior = null; // mapping的处理行为参数 // ======================= 内部数据,外部请勿直接操作 ================== private BeanMappingObject nestObject = null; // 定义嵌套的配置 private Convertor convertorRef = null; // convertor对应的对象引用 private GetExecutor getExecutor = null; // get操作的执行引擎 private SetExecutor setExecutor = null; // set操作的执行引擎 public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } public String getConvertor() { return convertor; } public void setConvertor(String convertor) { this.convertor = convertor; } public String getScript() { return script; } public void setScript(String script) { this.script = script; } public boolean isMapping() { return mapping; } public void setMapping(boolean mapping) { this.mapping = mapping; } public Class getConvertorClass() { return convertorClass; } public void setConvertorClass(Class convertorClass) { this.convertorClass = convertorClass; } public Convertor getConvertorRef() { return convertorRef; } public void setConvertorRef(Convertor convertorRef) { this.convertorRef = convertorRef; } public BeanMappingBehavior getBehavior() { return behavior; } public void setBehavior(BeanMappingBehavior behavior) { this.behavior = behavior; } public GetExecutor getGetExecutor() { return getExecutor; } public void setGetExecutor(GetExecutor getExecutor) { this.getExecutor = getExecutor; } public SetExecutor getSetExecutor() { return setExecutor; } public void setSetExecutor(SetExecutor setExecutor) { this.setExecutor = setExecutor; } public BeanMappingFieldAttributes getSrcField() { return srcField; } public void setSrcField(BeanMappingFieldAttributes srcField) { this.srcField = srcField; } public BeanMappingFieldAttributes getTargetField() { return targetField; } public void setTargetField(BeanMappingFieldAttributes targetField) { this.targetField = targetField; } public BeanMappingObject getNestObject() { return nestObject; } public void setNestObject(BeanMappingObject nestObject) { this.nestObject = nestObject; } public String getNestName() { return nestName; } public void setNestName(String nestName) { this.nestName = nestName; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }