1 4 package org.terracotta.modules.iBatis_2_2_0.object.config; 5 6 import org.terracotta.modules.iBatis_2_2_0.object.dna.impl.IBatisAccessPlanInstance; 7 8 import com.tc.object.config.ChangeApplicatorSpec; 9 import com.tc.object.config.ModuleSpec; 10 11 public class IBatisModuleSpec implements ModuleSpec { 12 private final ChangeApplicatorSpec changeAppSpec; 13 14 public IBatisModuleSpec(ChangeApplicatorSpec changeAppSpec) { 15 this.changeAppSpec = changeAppSpec; 16 } 17 18 public ChangeApplicatorSpec getChangeApplicatorSpec() { 19 return this.changeAppSpec; 20 } 21 22 public Class getPeerClass(Class clazz) { 23 if (isIBatisAccessPlan(clazz)) { 24 return IBatisAccessPlanInstance.class; 25 } 26 return clazz; 27 } 28 29 public boolean isUseNonDefaultConstructor(Class clazz) { 30 return isIBatisAccessPlan(clazz); 31 } 32 33 public boolean isPortableClass(Class clazz) { 34 return isIBatisAccessPlan(clazz); 35 } 36 37 private static boolean isIBatisAccessPlan(Class clazz) { 38 if (IBatisAccessPlanInstance.class.getName().equals(clazz.getName())) { return true; } 39 Class superclass = clazz.getSuperclass(); 40 if (superclass == null) { return false; } 41 if (superclass.getName().equals("com.ibatis.sqlmap.engine.accessplan.BaseAccessPlan")) { return true; } 42 return false; 43 44 } 45 46 } 47 | Popular Tags |