package org.sky.auto.intrumentation; import java.util.HashSet; import java.util.Set; import org.sky.auto.base.Configure; /** * 本地class文件的扫描方法,初始化只能扫描一次,不能够重复扫描,如果需要重置 * * * */ public class ClassPool { static private Set<Class<?>> classPool=new HashSet<Class<?>>(); /** *@return 返回项目目录下的class的集合。 */ public static Set<Class<?>> getClassPool(){ if(classPool.size()==0){ Configure cf = new Configure(); ClassPathScanHandler cpsh = new ClassPathScanHandler(true, true, null); classPool=cpsh.getPackageAllClasses(cf.getBasename(), true); return classPool; }else{ return classPool; } } /** *@param clazz 需要添加的class对象,需要在classpath找到的class */ public static void addClass(Class<?> clazz){ classPool.add(clazz); } public static void reset(){ classPool.clear(); } public static void removeClass(Class<?> clazz){ classPool.remove(clazz); } }