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; /** * mapping配置的field信息配置 * * @author jianghang 2011-6-21 上午11:32:56 */ public class BeanMappingFieldAttributes implements Serializable { private static final long serialVersionUID = -4833554213883478310L; private Class locatorClass; // 指定在该LocatorClass,查找对应的目标数据name的属性方法,解决继承属性 private String name; // 源数据的name private Class clazz; // 源数据的class // 允许出现嵌套数组,比如List<Set<List<Model>>>, // 此时对应的componentClasses存在3个Class,分别为Set.class(第一层),List.class(第二层),Model.class(第三层) private List<Class> componentClasses; // 指定Collection/Array的ComponentType public Class getLocatorClass() { return locatorClass; } public void setLocatorClass(Class locatorClass) { this.locatorClass = locatorClass; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Class getClazz() { return clazz; } public void setClazz(Class clazz) { this.clazz = clazz; } public List<Class> getComponentClasses() { return componentClasses; } public void setComponentClasses(List<Class> componentClasses) { this.componentClasses = componentClasses; } public void addComponentClasses(Class componentClass) { if (componentClasses == null) { componentClasses = new ArrayList<Class>(); } componentClasses.add(componentClass); } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }